Ich habe ein einfaches Programm geschrieben, um zu überprüfen, ob der eingegebene Buchstabe ein Vokal ist, und mein Code funktioniert nicht. Das Programm sollte Zeichen nacheinander als Eingabe nehmen, bis% eingegeben wurde, wodurch es beendet wird. Es prüft, ob Eingabezeichen Vokale sind und gibt das Ergebnis aus. Es meldet auch einen Fehler, wenn die Eingabe kein Buchstabe ist. Das Problem ist, dass es im zweiten Schritt aus der Schleife ausbricht. Vielen Dank für Hilfe, im Voraus. PS Sorry, habe nicht geschrieben, dass es keine Fehlermeldung gibt, es bricht nur aus der Schleife.C While-Schleife - Code funktioniert nicht
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{
char processed='q';
while(processed != '%')
{
printf("Enter letter to check if it's a vowel, %% to quit.\n");
char input = getchar();
processed = tolower(input);
printf("%c\n", processed);
if (processed == '%')
break;
if (processed < 'a' || processed > 'z')
{
fprintf(stderr, "Input should be a letter\n");
exit(1);
}
switch(processed)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'y':
printf ("Vowel\n");
break;
default:
printf ("Non-vowel\n");
}
}
exit(0);
}
Was ist der Fehler? – Oleksi
Wenn Sie "mit einer Fehlermeldung" eingeben, ist die allerletzte, die Sie eingeben sollten, die ** genaue ** Fehlermeldung. Wir können Ihren Bildschirm nicht sehen oder Ihre Gedanken von hier lesen, und da Sie bereits wissen, was der Fehler ist, könnten Sie den Gefallen tun, ihn zu liefern. Es macht es viel einfacher, Ihr Problem zu lösen, wenn Sie uns alle Informationen zur Verfügung stellen und es für uns einfacher macht, Ihre Antworten schneller zu erhalten. –