Forum
Tipps
News
Menu-Icon

switch und einlesen von kommandos

Hi,
ich bin absoluter Anfänger in C und finde leider meinen Fehler in diesem kleinen Taschenrechner nicht!  ???

Hier ist der Code:

#include<stdio.h>

int main()
{
   int a;
   int b;
   int c;
   printf("Sie befinden sich im Haupmenue\n\n Bitte geben Sie ihre Wahl an:\n 1. Addieren\n 2. Subtrahieren \n 3. Multiplizieren \n 4. Dividieren\n");
   scanf("%d", &c);
   switch(c)
   {
   case '1' :
   printf("Geben Sie ihre erste Zahl ein:");
   scanf("%d", &a);
   printf("Geben Sie ihre zweite Zahl ein:");
   scanf("%d", &b);
   printf("Das Ergebnis ist:%d\n", a + b);
   break;
   case '2':
   printf("Geben Sie ihre erste Zahl ein:");
   scanf("%d", &a);
   printf("Geben Sie ihre zweite Zahl ein:");
   scanf("%d", &b);
   printf("Das Ergebnis ist:%d\n", a - b);
   break;
   case '3':
   printf("Geben Sie ihre erste Zahl ein:");
   scanf("%d", &a);
   printf("Geben Sie ihre zweite Zahl ein:");
   scanf("%d", &b);
   printf("Das Ergebnis ist:%d\n", a * b);
   break;
   case '4':
   printf("Geben Sie ihre erste Zahl ein:");
   scanf("%d", &a);
   printf("Geben Sie ihre zweite Zahl ein:");
   scanf("%d", &b);
   printf("Das Ergebnis ist:%d\n", a / b);   
   default :
   printf("Falsches Kommando!\n");
   }
   return 0;
}


Antworten zu switch und einlesen von kommandos:

was ist denn genau der fehler??

was funktioniert denn nicht??

Schuss ins Blaue ... da fehlen \n am ende der scanf's ?

Ganz einfach, wenn ich ein Kommando eingebe(egal welches) kommt immer die Fehlermeldung "Falsches Kommando". Wenn ich scanf noch eine Esacpe-Sequenz hinzufüge wie \n dann bleibt das Programm hängen und wenn ich den default-teil herauslasse, beendet sich das Programm von selbst.

Danke für die schnellen Antworten

Hm vielleicht hätt ich nochmal genauer gucken sollen:

Du hast c als int (was auch richtig ist).

Dann überprüfst du jedoch, ob c == '1', '2', etc ist.
Aber c ist kein Character, sondern ein integer, und der ascii-code von '1' ist nicht 1, somit rennt er in den default-Zweig. Also, check gegen echte Zahlen, und nicht gegen Buchstaben.

Sorry, wenn ich dich falsch verstanden hab, aber nach http://www.asciitable.com/ funktioniert weder der Hexcode 0x31 bzw 31 noch der dezimalcode 49: das programm friert ein.

Danke

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,

sorry bin schon ein paar Jahre weg von C und weiß
die Syntax nicht mehr genau, aber könnte es nicht
sein das es

case 1:
case 2:
case 3:
case 4:

heißen muß.

Sorry wenn ich falsch liege.

Vielleicht hilft das!

int main (void)
{
   int a=0;
   int b;
   int c;


   printf ("Was wollen Sie tun? \n"
      "1: addieren? \n"
      "2: subtrahieren? \n"
      "3: multiplizieren? \n"
      "4: dividieren? \n"
      "5: Ende \n");
   
   do
   {
   fflush (stdin);
   scanf ("%d", &a);

   switch (a)
   {
   case 1:
   printf ("Zwei Zahlen eingeben! \n");
   scanf ("%d%d",&b,&c);
   printf ("Ergebnis = %d \n", b+c);
   break;
   case 2:
   printf ("Zwei Zahlen eingeben! \n");
   scanf ("%d%d",&b,&c);
   printf ("Ergebnis = %d \n", b-c);
   break;
   case 3:
   printf ("Zwei Zahlen eingeben! \n");
   scanf ("%d%d",&b,&c);
   printf ("Ergebnis = %d \n", b*c);
   break;
   case 4:
   printf ("Zwei Zahlen eingeben! \n");
   scanf ("%d%d",&b,&c);
   printf ("Ergebnis = %f \n",(float) b/c);
   break;
   case 5:
   break;
                  
   default:
   printf ("Falsche Eingabe!");
}
   }while (a!=5);

   return 0;
}


« Programme verknüpfenumfangreiche Formulardaten speichern »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...