程序求助:求学生每门课的平均值
要求:输入10个学生5门课程的成绩1:计算每个学生的平均值
2:每门课的平均值
3:找出50个分数中的最大值,以及对应学生和课程
4:计算方差
#include <stdio.h>
//#include <stdlib.h>
#include <math.h>
# define N 10
# define M 5
float s_var(float a_stu[N]);
void highest(int score[N][M]);
void input_stu(int score[N][M]);
void aver_stu(int score[N][M],float a_stu[N]);
void aver_cour(int score[N][M],float a_cour[M]);
void main()
{
int score [N][M];
float a_stu [N],a_cour[M]; //学生平均值以及课程平均值
int i,j;
for (i=0;i<N;i++)
{
for (j=0;j<M;j++)
scanf("%d",&score[i][j]);
}
aver_stu(score,a_stu);
aver_cour(score,a_cour);
printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver");
for (i=0;i<N;i++)
{
printf("\n NO.%2d ",i+1);
for (j=0;j<M;j++)
printf("%8d",score[i][j]);
printf("%8.2f",a_stu[i]);
}
printf("\nAverage:");
for (j=0;j<M;j++)
printf("%8.2f",a_cour[j]);
highest(score);
printf("\nVariance:%8.2f\n",s_var(a_stu));
// system("pause");
}
//////////////////////////////////////////////////////////////////
/*void input_stu(int score[N][M]) /////输入学生的号码和每门课的成绩
{
int i,j;
for (i=0;i<N;i++)
{
// printf("\nInput score of student%2d:\n",i+1);
for (j=0;j<M;j++)
scanf("%d",&score[i][j]);
}
}
*/
//////////////////////////////////////////////////////////////
void aver_stu(int score[N][M],float a_stu[N]) /////每个学生五门课的平均值 (行)
{
int i,j;
float s;
for (i=0;i<N;i++)
{
s=0;
for (j=0;j<M;j++)
s+=score[i][j];
a_stu[i]=s/M; ///平均值
}
}
/////////////////////////////////////////////////////////////////
void aver_cour(int score[N][M],float a_cour[M]) //每门课的平均值(列)
{
int i,j;
float s;
for (j=0;j<M;j++)
{
s=0;
for (i=0;i<N;i++)
s+=score[i][j];
a_cour[j]=s/N;
}
}
//////////////////////////////////////////////////
void highest(int score[N][M])///最高分,学生号码,以及课程号码
{
int high;
int i,j,row,column;
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];
row=i+1; //课程从1开始
column=j+1; //号码也是从1开始
}
printf("\nHighest score is:%3d,NO.%2d student,course %2d\n",high,row,column);
}
///////////////////////////////////////////////////////////////
float s_var(float a_stu[N]) ////求均方差
{
int i;
float sumx,sumxn;
sumx=0.0;
sumxn=0.0;
for (i=0;i<N;i++)
{
sumx+=a_stu[i]*a_stu[i];
sumxn+=a_stu[i];
}
return (sumx/N-(sumxn/N)*(sumxn/N));
}
结果就是不对,可能就是输入的时候有问题,求指教啊