这个还没做排序那个问题,我的这个在自己的编译器上总分是对的,平均数和在这上面一样错了,想请求个位大神帮忙指导改正。
#include <stdio.h>
int main()
{
int score[10]={67,98,75,63,82,79,81,91,66,84};
int sum=0;
int n;
for(n =0;n <= 10;n++)
{
sum += score[n];
}
printf("考试总分是%d\n",sum);
int max=score[0];
for(n=0;n<10;n++)
{
if(max<score[n])
{
max=score[n];
}
}
printf("最高分是%d\n",max);
int min=score[0];
for(n=0;n<10;n++)
{
if(min>score[n])
{
min=score[n];
}
}
printf("最低分是%d\n",min);
float adv;
for(n =0;n <= 10;n++)
{
sum += score[n];
adv = sum*1.0/10;
}
printf("平均分是%f\n",adv);
return 0;
}
求和的时候就出错了: for(n =0;n <= 10;n++),如果<=10的话会出现score[10]这个不存在的数据,系统就随机分配一个数据给这个值,所以应该改为<=9;
然后求平均值的时候sum没有初始化,还是会带入求和的时候的值,及真正的sum,应该重新定义一下,让sum=0.
adv这一行,挪到for循环外`~