抱一观复 2015-08-18 12:51 采纳率: 0%
浏览 1458
已结题

编写一个程序遇到的疑问

#include
int main()
{
float t = 0;
float invalue;
float average;
char ch;
float all = 0;
for (;;)
{
printf("请输入数据:");
scanf("%f", &invalue);
all = all + invalue;
printf("%f\n", all);
t = t + 1;
printf("%f\n", t);
average = all / t;
printf("%f\n", average);
printf("please input Y GO ON ");

        scanf("%c", &ch); 
        if (ch != 'Y')
        {
            break; 
        }



    }

return 0;

}

在visual studio 2015中为什么我的scanf("%c", &ch); 语句不执行

  • 写回答

3条回答 默认 最新

  • lpfly 2015-08-18 12:58
    关注

    因为你在前面一个scanf('%f")输入的时候,你输入的其实是一个数字+一个回车,而scanf('%f")只是把数字的部分给处理了,剩下的一个回车没有处理,还是属于你的输入。所以到了scanf("%c")的时候,这个回车就被自动读取作为ch的值了。

    你把前面的那个scanf("%f")改成scanf("%f\n")就好了。这样你第一次输入的这个回车就不会被作为后来的输入了。

    评论

报告相同问题?