各位高人,小弟这个程序哪个地方不对啊?请不要闲麻烦!!!
这个程序怎么运行结果不对啊?哪个地方出问题了?求高手指点输入10个学生5门课的成绩,分别用函数实现下列功能:
1)计算每个学生平均分
2)计算每门课的平均分
3)找出所有50个分数中最高的分数所对应的学生及课程
4)计算平均分的方差
谢谢了!!!!
#include<stdio.h>
#define N 10
#define M 5
float score[N][M];
float a_stu[N],a_cour[M];
int r,c;
void aver1(void)
{
int i,j;
float s;
for(i=0;i<N;i++)
{
for(j=0,s=0;j<M;j++)
s=s+score[i][j];
a_stu[i]=s/5.0;
}
}
void aver2(void)
{
int i,j;
float s;
for(i=0;i<M;i++)
{
s=0;
for(j=0;j<N;j++)
s=s+score[j][i];
a_cour[i]=s/10.0;
}
}
void high(void)
{
float high;
int i,j;
high=score[0][0];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(score[i][j]>high)
{
high=score[i][j];
r=i+1;c=j+1;
}
}
float variance(void)
{
int i;
float sum1=0,sum2=0;
for(i=0;i<N;i++)
{
sum1=sum1+a_stu[i]*a_stu[i];
sum2=sum2+a_stu[i];
}
return(sum1/N-(sum2/N)*(sum2/N));
}
void main()
{
int i,j;
float v;
for(i=0;i<N;i++)
{
printf("please input the scores of num.%d:\n",i+1);
for(j=0;j<M;j++)
scanf("%f",&score[i][j]);
}
aver1();
aver2();
high();
v=variance();
for(i=0;i<N;i++)
printf("the average score of student num %d is %f\n",i+1,a_stu[i]);
for(j=0;j<M;j++)
printf("the average score of cour %d is %f\n",j+1,a_cour[j]);
printf("the high score in cour %d ,student num %d\n",c,r);
printf("the variance is %f\n",v);
}