Frage zu C Schleife

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
556
Hallo,
ich versuche mir gerade C selber beizubringen.
Nun bin ich auf folgendes Problem gestoßen und bräuchte eure hilfe:
Mein Programm gibt mir immer den Wert 2 aus. Zudem wiederholt sich alles unendlich oft, wenn ich für a einen Kommawert eingebe.
Was habe ich falsch gemacht?
------------------------------------------------------
#include<stdio.h>
#include<math.h>

int main() {

double a=2;

while(1<a && a<3) {

printf("Geben Sie eine Zahl zischen 1 und 3 ein. Bei falscher Eingabe wird das Programm beendet!\n\n");
scanf("%f", &a);
printf("Sie haben eingegeben: %f\n", a);

}

printf("Ende");

return 0;
}
----------------------------------------------------------
Ich vermute mal, dass es für ein geübtes Auge ein offensichtliches Problem ist.
 
Nehme stark an:
Kommazahlen schreiben sich im Programmiersprachen bzw im Englischen mit Punkt, also musst du 1.5 stat 1,5 eingeben.
Scanf erwartet einen float als parameter wenn man mit %f versucht eine Zahl einzulesen. Du musst also den Datentyp von a von double auf float umändern.
 
Entweder du änderst deinen double a=2 zu float a oder du änderst dein scanf("%f".... zu scanf("%lf"...
scanf kann kein double mit %f verarbeiten.
 
Ach, vielen Dank.
Man ist das mit dem Komma halt schon gewöhnt :).

Wenn ich jetzt das double Format will, was muss ich dann hinter % schreiben?

Ok, Frage hat sich geklärt.
 
Zurück
Oben