Case-Problem
-
Hi!
Ich sitze hier gerade mit meinem dicken Buch zusammen über folgendem Problem: Egal was ich für die Variable einsetze, es kommt immer der "default"-Fall.
Wo liegt mein Fehler?MfG
#include <stdio.h> #include <stdlib.h> main() { int bmi=26; printf("Dein Body-Mass-Index (BMI) ist %d.\n", bmi); switch (bmi) { case '<20': printf("Du hast Untergewicht!!!\n"); break; case '>25': printf("Du hast Uebergewicht!!!\n"); break; default: printf("Gratuliere, du hast Idealgewicht!!!\n"); } system("PAUSE"); }
-
Student20 schrieb:
case '<20': printf("Du hast Untergewicht!!!\n");
Mit switch-case kann man nicht beliebige Bedingungen testen (schon gar nicht, wenn man die in Anführungsstriche einfasst und dadurch char-Konstanten baut). Als case-Marken sind nur integrale Werte erlaubt, also Zahlen, chars oder enums. Was du willst läßt sich über if..else lösen.
-
http://www.antecki.de/link/bmi.htm
Zum Thema BMI berechnung!
-
Und '<20' ist auch ein Zeichen, das aus 3 Zeichen besteht, das geht nicht
-
Er will bestimmt sowas!!!
if(bmi<20) { printf("Du hast Untergewicht!!!\n"); } else if(bmi>25) { printf("Du hast Uebergewicht!!!\n"); } else { printf("Gratuliere, du hast Idealgewicht!!!\n"); }
mfg hohesC
-
supertux schrieb:
Und '<20' ist auch ein Zeichen, das aus 3 Zeichen besteht, das geht nicht
Doch, sowas nennt sich Multicharacter Literal und ist vom Typ int.