求大家帮忙看看这个代码哪里有问题,为什么到判断第二个字母的时候直接就结束运行了
【以下回答由 GPT 生成】
问题出在 scanf() 函数上。在读取字符时,需要注意缓冲区的清理问题。
解决方案是在读取第一个字符后添加一个额外的 getchar() 函数,用于清空输入缓冲区中的回车符。
修改后的代码如下:
#include <stdio.h>
int main() {
char x, y;
printf("请输入大写英文字母作为星期几的首字母:");
scanf(" %c", &x);
getchar(); // 清空输入缓冲区
if (x == 'M') {
printf("请输入第二个字母:");
scanf(" %c", &y);
if (y == 'o') {
printf("Today is Monday");
}
}
else if (x == 'T') {
printf("请输入第二个字母:");
scanf(" %c", &y);
if (y == 'u') {
printf("Today is Tuesday");
}
else if (y == 'h') {
printf("Today is Thursday");
}
}
else if (x == 'W') {
printf("Today is Wednesday");
}
else if (x == 'F') {
printf("Today is Friday");
}
else if (x == 'S') {
printf("请输入第二个字母:");
scanf(" %c", &y);
if (y == 'a') {
printf("Today is Saturday");
}
else if (y == 'u') {
printf("Today is Sunday");
}
}
return 0;
}
这样修改后,程序应该能够正确运行了。
【相关推荐】