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