C语言输入一个班级的成绩,求总分,平均分,最低分和最高分,输入-1表示结束

如题所述

第1个回答  2012-04-22
一楼基本上是对的,不过循环这些有错,还是必须加上循环的中止条件,调试无误代码如下:
#include "stdio.h"
int main()
{
signed int n; //因为要与-1比较,所以n定义为有符号的int类型
int max,min,sum,i;
double average;//平均分数可能出现小数
max=0,min=100,i=0,n=0,average=0,sum=0;
for(i=1;;i++)
{
scanf("%d",&n);
if(n==-1)
break;//当输入-1时表示数据输入完,必须中止循环,计算总和,均值
if(max<=n)max=n;
if(min>=n)min=n;
sum+=n;
}
average=1.0*sum/(i-1);
printf("sum=%d\naverage=%f\nmax=%d\nmin=%d\n",sum,average,max,min);
return 0;
}本回答被提问者采纳
第2个回答  2012-04-22
#include "stdio.h"
int main()
{
int n,max,min,sum,average,i;
max=0,min=100,i=0,n=0,average=0;
for(i;i!=-1;i++)
{
scanf("%d",&n);
if(max<=n)max=n;
if(min>=n)min=n;
sun+=n;
}
average=sum/i;
printf("sum=%d\naverage=%d\nmax=%d\nmin=%d\n",sum,average,max,min);
return 0;
}追问

程序上显示一个错误呢。