C-开发一个类平均程序,该程序每次运行时都会处理任意数量的成绩


#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;
}

这是问题和输出!!!我有作业要做这项练习,但我不知道在哪里错了,所以我想要一点帮助!!!谢谢

您应该修复的代码中有一些有问题的行。

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之前没有输入数字的情况,我将留下此内容供您玩,如果您有其他问题,您可以回到这个问题

最新更新