菜鸟急求!!!各位大神路过看看吧!!!
为什么单步调试的时候aver的值是错误的(变成0了),而直接执行的时候却是正确的?
求大牛指教啊…………
#include<stdio.h>
int main()
{
int n,score,max,min,aver;
aver=0;n=0;max=0;min=100;
printf("score=?\n");
while(1)
{
scanf("%d",&score);
if(score<0)break;
aver+=score;n++;
if(score>max)max=score;
if(score<min)min=score;
}
aver/=n;
printf("n=%d\n",n);
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("aver=%d\n",aver);
return 0;
} c语言
[解决办法]
#include<stdio.h>
int main()
{
int n = 0 ,score = 0,max = 0,min = 0, sum = 0;
printf("score=?\n");
while(1 == scanf("%d",&score) && score >= 0)
{
sum +=score;
if(!n)
{
min = max = score;
}
++n;
if(score > max) max = score;
if(score < min) min = score;
}
printf("n=%d\n",n);
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("aver=%f\n",n ? (float)sum/ n : 0);
return 0;
}