Hallo,
ich habe die letzten drei Jahre nur Java programmiert und muss für die Uni nun C lernen.
Das hier ist ein einfaches Programm, was eine Zahl >10 einlesen soll und diese anschließend ausgibt.
Jetzt habe ich diese beiden Probleme:
1. Wenn ich z.B. eine 8 eingebe, ist dies ja ein falscher Wert, weil kleiner 10. Das Programm geht aber dennoch aus der while-Schleife raus, obwohl vorher "Ungueltiges Format" ausgegeben wird. Warum? Und wie kann ich das verhindern?
2. Wenn ich einen Buchstaben eingebe, soll er logischerweise auch "Ungueltiges Format" anzeigen. Das tut er auch. Aber wenn ich mehrere Buchstaben eingebe, dann wird mir "Ungueltiges Format" mehrmals angezeigt und zwar genauso oft wie die Anzahl der Buchstaben, die ich eingegeben habe. Wie kann das sein?
ich habe die letzten drei Jahre nur Java programmiert und muss für die Uni nun C lernen.
Das hier ist ein einfaches Programm, was eine Zahl >10 einlesen soll und diese anschließend ausgibt.
Code:
#include <stdio.h>
int main(void)
{
int zahl;
int ok = 0;
printf("Bitte eine Zahl > 10 eingeben\n");
do
{
ok = scanf("%d", &zahl);
if (ok > 0 && zahl > 10)
{
printf("%d\n", zahl);
return 0;
} else
printf("Ungueltiges Format\n");
} while (getchar() != '\n');
}
1. Wenn ich z.B. eine 8 eingebe, ist dies ja ein falscher Wert, weil kleiner 10. Das Programm geht aber dennoch aus der while-Schleife raus, obwohl vorher "Ungueltiges Format" ausgegeben wird. Warum? Und wie kann ich das verhindern?
2. Wenn ich einen Buchstaben eingebe, soll er logischerweise auch "Ungueltiges Format" anzeigen. Das tut er auch. Aber wenn ich mehrere Buchstaben eingebe, dann wird mir "Ungueltiges Format" mehrmals angezeigt und zwar genauso oft wie die Anzahl der Buchstaben, die ich eingegeben habe. Wie kann das sein?