开发一个班级平均程序,每次程序运行时将处理任意数量的成绩

时间:2019-03-13 13:30:39

标签: c loops while-loop

#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!!! 我有一个作业要做这个练习,我写了它,但是我不知道哪里出了问题,所以我想要一点帮助! 谢谢

1 个答案:

答案 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之前没有输入数字的情况,我将留给您处理,如果您还有其他问题,可以回到这个问题