写的有点仓促,希望可以帮到你。#define M 10#define N 5#includeint main(){ void average1(int a[3],int b[3][3]);/*每个学生的平均分*/ void average2(int a[3],int b[3][3]);/*每门课的平均分*/ void most(int a[3],int b[3][3]);/*最高分对应的学生和科目*/ void average3(int a[3],int b[3][3]);/*平均分方差*/ int i,j,a[M+1],b[M+1][N+1],k; for (i=1;i<=M;i++) {printf("请输入学号:\n");scanf("%d",&a);printf("请输入成绩(按语数外物化的顺序):\n");for (j=1;j<=N;j++){ scanf("%d",&b[j]);} }average1(a,b);/*每个学生的平均分*/
average2(a,b);/*每门课的平均分*/
most(a,b);/*最高分对应的学生和科目*/average3(a,b);/*平均分方差*/}/*以下是函数部分*//*每个学生的平均分*/void average1(int a[M+1],int b[M+1][N+1]){ int i,j; float sum=0;float c[M+1]; for (i=1;i<=M;i++) {sum=0;for (j=1;j<=N;j++){ sum=sum+b[j];
}c=sum/N; } for(i=1;i<=M;i++) {printf("%d号学生的平均成绩是:\n",a);printf("%f\n",c); }}/*每门课的平均分*/void average2(int a[M+1],int b[M+1][N+1]){ int i,j; float d[N+1],sum=0; for (j=1;j<=N;j++) {sum=0;for (i=1;i<=M;i++){sum=sum+b[j];}d[j]=sum/M; } printf("各科平均成绩为:(按语数外物化的顺序):\n"); for (j=1;j<=N;j++) {printf("%f\n",d[j]); }}/*最高分对应的学生和科目*/void most(int a[M+1],int b[M+1][N+1]){ int i,j,max,t,row=1,colum=1;
max=b[1][1];
for (i=1;i<=M;i++)
{
if (max<b[j])
{
max=b[j];
row=i;
colum=j;
}
}
printf("%d号学生",a[row]);
switch(colum)
{
case 1:printf("语文成绩最高为:");break;
case 2:printf("数学成绩最高为:");break;
case 3:printf("外语成绩最高为:");break;
case 4:printf("物理成绩最高为:");break;
case 5:printf("化学成绩最高为:");break;
}
printf("%d\n",max);}/*平均分方差*/void average3(int a[M+1],int b[M+1][N+1]){ int i,j; float x=0,y=0,s,t=0,sum; float c[M+1]; for (i=1;i<=M;i++) {sum=0;for (j=1;j<=N;j++){ sum=sum+b[j];
}c=sum/N; } for(i=1;i<=M;i++) {x=x+c*c;t=c+t;y=(t/M)*(t/M); } s=x/M-y; printf("平均分方差为:\n"); printf("%f\n",s);}
|