为什么我运行出来回多出那两句话?

img

img

img


按照这个循环来看 结果里面应该不会多出来那两句话 为什么它会多出那两句话呢。

这个后面要加个getchar()读入回车符,不然默认读入回车符作为这一次的结果
另外你判断相等的时候要写两个等号
这是一个例子

img

#include<stdio.h>
int main()
{
    char c;
    while(1)
    {
        c=getchar();
        getchar();
        if(c<'5')
            printf("太小\n");
        else if(c > '5')

        printf("太大\n");
        else
        {
        printf("正确\n");
        break;
        }
    }
}


因为你的每次输入是一个字母加上一个回车
在循环中做判断,如果getchar得到的是回车,则丢弃这个字符直接continue
有帮助望采纳~

img


写代码的时候要细心点,少打一个=

img


这行少了一个 ‘=‘ 号,应修改为:if (zimu == suiji)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632