我一直在编写一个简单的程序来检查输入字母是否是元音,但我的代码不起作用。
程序应该一一输入字符,直到输入%,这将使程序退出。它检查输入字符是否为元音,并打印结果。如果输入不是字母,它还会报告错误。
问题是,它在第二步中打破了循环。
提前感谢您的帮助。
PS 抱歉,没有写没有错误消息,它只是跳出了循环。
#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);
}
假设您正在输入一个字符,然后按 [ENTER]。因此,实际上您正在输入两个字符 - 您键入的字母和换行符(\n
)。第二次循环时,您获得换行符并发现它不是字母,因此您遇到了错误情况。也许您想添加类似的内容:
if (processed == '\n') {
continue;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)