帮忙看看这个怪程序哪里错了,谢谢
这是我们的c语言作业,求的是各学生的平均分,各科目的平均分,可每次运行后,结果都是0,怪了,谢谢
/* Note:Your choice is C IDE */
#include "stdio.h"
int score[10][5];
float a_stu[10],a_cour[5];
int r,c;
main()
{
float s_var();
float highest();
void input_stu();
void aver_stu();
void aver_cour();
int i,j;
float h;
input_stu();
aver_stu();
aver_cour();
printf("\n student cour1 cour2 cour3 cour4 cour5 aver");
for(i=0;i<10;i++)
{
printf("\n student %2d",i+1);
for(j=0;j<5;j++)
printf("%8.2f",score[i][j]);
printf("%8.2f",a_stu[i]);
}
printf("\naverage:");
for(j=0;j<5;j++)
printf("%8.2f",a_cour[j]);
h=highest();
printf("\nhihgest:%7.2f NO.%2d course%2d\n",h,r,c);
printf("\n variance:%8.2f",s_var());
}
void input_stu()
{
int i,j;
for(i=0;i<10;i++)
{
printf("intput score of the student%2d:\n",i+1);
for(j=0;j<5;j++)
scanf("%f",&score[i][j]);
}
}
void aver_stu()
{
int i,j;
float s;
for(i=0;i<10;i++)
{
for(s=0.0,j=0;j<5;j++)
s=s+score[i][j];
a_stu[i]=s/5.0;
}
}
void aver_cour()
{
int i,j;
float s;
for(j=0;j<5;j++)
{
s=0.0;
for(i=0;i<10;i++)
s=s+score[i][j];
a_cour[j]=s/(float)5.0;
}
}
float highest()
{
float high;
int i,j;
high=score[0][0];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(score[i][j]>high)
{
high=score[i][j];
r=i+1;
c=j+1;
}
return high;
}
float s_var()
{
int i,j;
float sum1,sum2;
sum1=0.0;
sum2=0.0;
for(i=0;i<10;i++)
{
sum1=sum1+a_stu[i]*a_stu[i];
sum2=sum2+a_stu[i];
}
return(sum1/10-(sum2/10)*(sum2/10));
}
参考答案:scanf(\"%f\",&score[i][j]); 与定义的score类型不匹配 改成%d