Я написал простую программу, чтобы проверить, является ли входное письмо гласным, а мой код не работает. Программа должна принимать символы как входные один за другим, пока не будет введено значение%, что приведет к его завершению. Он проверяет, являются ли входные символы гласными и печатает результат. Также он сообщает об ошибке, если ввод не является буквой. Проблема в том, что она выходит из цикла на втором шаге. Благодарим вас за помощь, заранее. PS Извините, не написал, что нет сообщения об ошибке, он просто выходит из цикла.C while loop - код не работает
#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);
}
Какая ошибка? – Oleksi
Когда вы вводите «с сообщением об ошибке», самое следующее, что вы должны ввести, - это сообщение ** точное ** сообщение об ошибке. Мы не можем видеть ваш экран или читать ваш ум отсюда, и, поскольку вы уже знаете, в чем ошибка, вы можете сделать это. Это значительно облегчает решение вашей проблемы, если вы даете нам всю информацию, которая будет использоваться для этого, и упрощение для нас дает вам ответы быстрее. –