#include <stdio.h>
#include <stdlib.h>
int main()
{
int grade,count,sum,average;
grade=0;
count=0;
sum=0;
while(grade!=-1)
{
printf("enter grade=");
scanf("%d",&grade);
sum=grade+sum;
count=count++;
}
average=sum/count;
printf("the average is=%d",average);
return 0;
}
this is the question and the output!!! 我有一个作业要做这个练习,我写了它,但是我不知道哪里出了问题,所以我想要一点帮助! 谢谢
答案 0 :(得分:0)
您应修复代码中有问题的几行。
count=count++;
正如Eugene的评论所指出的, count ++与count = count + 1类似。该行仅是其中之一。将“ count = count ++”想成“ count = count = count + 1”,这是格式化增量的一种非常奇怪的方法。此行只能是count++;
average=sum/count;
此行正在进行整数除法,您的问题正在寻找浮点答案。您可以通过将两个整数乘以1.0(浮点值)来强制这两个整数执行浮点除法。它应该看起来像这样:
average = 1.0 * sum / count;
最后,无论输入什么内容,循环每次都会增加计数器,并将其加到总和上。输入-1时,它将在while循环结束之前增加计数并将其加到总和上。您可以将这些操作放入一个简单的if语句中,以确保对此进行了说明:
printf("enter grade=");
scanf("%d",&grade);
if (grade >= 0) {
sum=grade+sum;
count++;
}
希望这会有所帮助!
注意:这并不说明在-1之前没有输入数字的情况,我将留给您处理,如果您还有其他问题,可以回到这个问题