初学者求助,遇到一个很诡异的问题,百思不得其解,求大佬帮忙!
刚开始学C语言,学到关于for的无限循环时出了问题,以下是内容:#include <stdio.h>
#include <ctype.h>
int main(void)
{
char answer='N';
double total=0.0;
double value=0.0;
int count=0;
printf("This program calculates the average of any number of value. \n\n");
for(;;) //Indefinite loop
{
printf("\nEnter a value:");
scanf("%lf",&value);
total += value;
++count;
printf("Do you want to enter another value?(Y/N):");
scanf("%c",&answer);
if(tolower(answer)=='n')
break;
}
printf("The average is %.2lf \n\n",total/count);
return 0;
}
以上是照搬教科书上编写的,应该没有问题,测试后也显示问题和风险都是0,然而到了运行该程序的时候,问题来来了,请看下图
为什么我感觉在循环里面的printf内容互相串联了?总是出现多余的内容?如图,输入完第一个数字,出现提示选择Y/N,可我没有输入任何选择,就自动出现再次输入数字的提示,还有比如最后我输入了n。break掉它,下面一行居然还出现提示选择Y/N,请问这到底是什么情况呀???是C语言又有了什么新语法吗???另外我用的是win7系统,用的编译器是vc6,编译其他方面都没问题,就是一到编译运行循环的时候就会printf出来一团浆糊,包括用if-goto做的循环也是这种毛病,请问问题到底出在哪里?求大佬指点迷津,感激不尽!!