C If Anweisung - simpler Rechner

Shokwing

Lieutenant
Registriert
Nov. 2005
Beiträge
574
Hallo zusammen,

ich versuche gerade C zu lernen ;) Folgendes Problem:

anbei mal der Code für meinen Rechner:

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

int main(void)
{
  int zahl1=0;
  int zahl2=0;
  int Ergebnis=0;
  int operation=0;
  printf("Gewuenschte Operation?\n");
  scanf("%d",&operation);
  printf("Zahl Eins eingeben\n");
  scanf("%d",&zahl1);
  printf("Zahl Zwei eingeben\n");
  scanf("%d",&zahl2);
  	if (operation==1);
  	{  
  	Ergebnis=zahl1+zahl2;
  	printf("Summe ist %d\n",Ergebnis);
  	}
    if (operation==2);
	{
  	Ergebnis=zahl1-zahl2;
  	printf("Ergebnis ist %d\n",Ergebnis);
  	}
    if (operation==3);
  	{
	Ergebnis=zahl1*zahl2;
  	printf("Ergebnis ist %d\n",Ergebnis);
	}
	printf("BLUBBELS\n");
  system("PAUSE");	
  return 0;
}

Er funktioniert soweit, allerdings verstehe ich nicht, warum er bei der Auswahl von 3 ( 3=Multiplikation) mir trotzdem das Ergebnis von der Addition und der Subtraktion liefert.

Das ist die Ausgabe:

Gewuenschte Operation?
3
Zahl Eins eingeben
4
Zahl Zwei eingeben
4
Summe ist 8
Ergebnis ist 0
Ergebnis ist 16
BLUBBELS
Drücken Sie eine beliebige Taste . . .

Warum macht er das? Ich habe ihm doch gesagt führe nur die Operation 3 aus?

Vielen Dank für eure Hilfe,
 
Entferne mal das ; am Ende der if-Zeile
 
boah ne oder :D funktioniert :D - GRRRRR warum ist das nur so pingelig, ich habe mir extra mühe gegeben und hinter jede Zeile ein ";" gesetzt!

Danke :)
 
der häufigste Fehler ist ";" falsch gesetzt oder vergessen :)
 
Shokwing schrieb:
boah ne oder :D funktioniert :D - GRRRRR warum ist das nur so pingelig, ich habe mir extra mühe gegeben und hinter jede Zeile ein ";" gesetzt!

Danke :)

Vielleicht zum Verständnis:

if (operation==1); ist eine If-Bedingung mit leerem Körper

{
Ergebnis=zahl1+zahl2;
printf("Summe ist %d\n",Ergebnis);
} Und das ist einfach nr ein Block ^^ Du darfst quasi alles in geschweifte Klammern packen, nur die if ist mit dem Semikolon zuende ;)
 
Zurück
Oben