C Aufgabe zum Verständnis von Operatoren

toxic189

Lieutenant
Dabei seit
Jan. 2012
Beiträge
747
Hey ho leute,


Ich bin gerade am lernen und komme nicht weiter.... ich habe was einfaches mit Operatoren machen wollen zum Verständnis und zur Veranschaulichung.. doch es will nicht wie ich :D

Ich hoffe ihr könnt mir helfen es geht um folgendes :)
Ich Programmiere mit "Visual Studio 10 Prof. (MSDNAA Konto)

Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>


int main(void)

{
		int a = 0, b = 2, c = 5;
		a = b + c;			// Sollte 7 ergeben
		a = b - c;			// Sollte -3 ergeben
		a = c / b;			// Sollte 2
		a = b * c;			// Sollte 10 ergeben


		a = c % b;			// 5/2 ist 2 Rest 1, a ist 1
		a = c % 3;			// 5/3 ist 1 Rest 2, a ist 2


		printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);

		getch();


}

Wäre für jede hilfe dankbar :)
Ich hatte es schon mit mehreren %d versucht in Kombination mit "a,b,c" nach dem "printf" aber wollte nicht :D



MFG
Dome :)
 
Zuletzt bearbeitet:
1

1668mib

Gast
Kannst du mal sagen was du genau willst?
Willst du alle Ergebnisse anzeigen lassen? Dann musst du auch jedes ausgeben lassen...
Aber nicht am Ende, weil du a ständig änderst...
 
Zuletzt bearbeitet:

iks-deh

Lt. Commander
Dabei seit
Jan. 2011
Beiträge
1.225
Wo ist da die Frage? Sry, aber ich finde sie nicht ^^.

edit: Wie mein Vorgänger bereits ge-edited hat, glaube ich dass du dir alle Ergebnisse ausgeben lassen willst (denke ich jetzt zumindest mal). Wenn das dein Problem ist, sollte daraufhingewiesen sein, dass du nur das letze Ergebnis der Berechnung von a ausgibst (a = c % 3), da a ja jedes mal überschrieben wird.
 
Zuletzt bearbeitet:

Matt Groening

Cadet 3rd Year
Dabei seit
März 2005
Beiträge
60
bin nicht ganz sicher (ist schon länger her) aber müsstest du nich void main(void) schreiben.. so wie du das hast, wird erwartet: das ein int wert zurückgegeben wird oder so.. kann auch sein das ich mich irre..
 

toxic189

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2012
Beiträge
747
Ich entschuldige mich :)

Ich möchte jedes ergebeniss anzeigen lassen. :)
 

das Neutrum

Lt. Junior Grade
Dabei seit
Nov. 2006
Beiträge
460
Dann musst du nach jeder Operation ein printf(); aufrufen. Oder du speicherst die Ergebnisse in int[] a und gibst die am Ende mit einer Schleife nacheinander aus.
 

iks-deh

Lt. Commander
Dabei seit
Jan. 2011
Beiträge
1.225
Dann müsstest du die "printf"-Anweisung auch nach jeder Rechenoperation ausführen lassen, damit der aktuelle wert ausgegeben wird :), also die printf-Anweisung nach jeder Berechnung einfügen.

edit: etwa so:

Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
     
     
    int main(void)
     
    {
    int a = 0, b = 2, c = 5;
    a = b + c; // Sollte 7 ergeben     
    
   printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);

    a = b - c; // Sollte -3 ergeben     
    
   printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);

    a = c / b; // Sollte 2     
    
   printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);

    a = b * c; // Sollte 10 ergeben     
    
   printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);
     
     
    a = c % b; // 5/2 ist 2 Rest 1, a ist 1     
    
   printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);

    a = c % 3; // 5/3 ist 1 Rest 2, a ist 2
     
     
    printf("Die ergebenisse von INT sollten hier nun stehen: %d\n",a);
     
    getch();
     
     
    }
 

nullPtr

Lt. Junior Grade
Dabei seit
März 2011
Beiträge
360
Nach jeder Rechnung das Ergebnis einfach ausgeben lassen.
Wenn du schreibst:
a = 1;
a = 2;
Wird der Wert 1 mit der 2 überschrieben und ist danach nicht mehr vorhanden. Vielleicht solltest du dich nochmals mit Variablen beschäftigen.
 

toxic189

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2012
Beiträge
747
Oh man -.-* ich honk :D hahaha ich danke vielmals :D auf die einfachste Idee komme ich nicht :D

DANKE :)
 
1

1668mib

Gast
@Matt Groening: Warum sich immer mit Nebenkriegsschauplätzen beschäftigen? Es kann je nach Sprach-Standard implizite Rückgabewerte geben.
 

Matt Groening

Cadet 3rd Year
Dabei seit
März 2005
Beiträge
60
Aufgrund der tatsache das im startpost keine klare Aussage war wo das Problem ist..
Bei solchen simplen Programmen haben wir damals immer void main(void) geschrieben..

aber das problem hat sich ja jetzt geklärt
 

maxwell-cs

Lt. Junior Grade
Dabei seit
Juli 2007
Beiträge
465
das "void main" ist übrigens nicht standardkonform :p
 
Zuletzt bearbeitet:

nullPtr

Lt. Junior Grade
Dabei seit
März 2011
Beiträge
360
"void main(void)" ist überflüssig, wenn du keine Parameter willst und nichts explizit zurückgibst, nimmt man nach K&R einfach "main()" Ohne jegliche Typangaben.
 
1

1668mib

Gast
@Matt Groening:
"doch es will nicht wie ich" empfand ich schon als relativ klar, dass es kein Compilier-Problem ist... sonst wäre wohl auch eher von Fehlermeldungen gesprochen worden und nicht vom Versuch des Feintunings...

@nullPtr:
kannst du mir sagen, wo der Unterschied zwischen "main()" und "int main(void)" sein soll, außer das ersteres natürlich kürzer zu schreiben ist... von mir aus auch zwischen "main()" und "int main()"?
 
Zuletzt bearbeitet:

toxic189

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2012
Beiträge
747
@168mib

int main() gibt einen integer wert zurück (den result oder exit code),
void main() nichts...
 
1

1668mib

Gast
@toxic189: Wo hab ich was von "void main()" geschrieben? In keinem meiner Beiträge taucht das auf... oO
Die Frage war zu dem nicht an dich gerichtet...
 
Top