对于以下程序:
do{
k=scanf("%lf",&grade);
printf("输入结果 k %d\n",k);
}while( k!=1 || grade < 0 || grade > 100 );
如果输入的数据不是0到100,会再次执行scanf,接收数据。
如果输入逗号或者字母,k的值为0,但是会一直循环下去,不会停止。
解决办法是:在scanf后,做清除缓存的操作。
原作者及原文链接:
https://blog.csdn.net/phao89/article/details/50545527
网友都是大神。