请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

求大家帮忙看看这个代码哪里有问题,为什么到判断第二个字母的时候直接就结束运行了

img

【以下回答由 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;
}

这样修改后,程序应该能够正确运行了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^