gpt4 book ai didi

C while 循环 - 代码不起作用

转载 作者:行者123 更新时间:2023-12-02 07:07:09 24 4
gpt4 key购买 nike

我一直在编写一个简单的程序来检查输入的字母是否为元音字母,但我的代码不起作用。程序应该一个接一个地输入字符,直到输入%,程序才会退出。它检查输入字符是否为元音字母,并打印结果。如果输入不是字母,它也会报告错误。问题是,它在第​​二步就跳出了循环。提前谢谢你的帮助。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;
}

关于C while 循环 - 代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com