int main(){
int a[10][5];
int i,j;
for(i=0;i<10;i++){
printf("第%d个同学的成绩:",i+1);
for(j=0;j<5;j++){
scanf("%d",&a[i][j]);}}//输入时数字之间用空格分隔
printf("\n");
xpj(a);printf("\n");
kpj(a);printf("\n");
maxj(a); printf("\n");//输出空格可去掉,这样只是为了输出结果美观
return 0;
}
int xpj(int a[10][5]){//每个学生平均分;
int i,j;
for(i=0;i<10;i++){//第i+1个同学
double c;
int b=0;
for(j=0;j<5;j++){//第i+1个同学的成绩平均分
b+=a[i][j];
c=b/5.00;}
printf("第%d个同学的成绩平均分%0.2f\n",i+1,c);}
}
int kpj(int a[10][5]){//每门课的平均分;
int i,j;
for(j=0;j<5;j++){//这里a【i】【j】,j循环放在最外面
double c;
int b=0;
for(i=0;i<10;i++){
b+=a[i][j];
c=b/10.00; }printf("第%d门课的平均分分别为%0.2f\n",j+1,c);}
}
int maxj(int a[10][5]){//所有分数中最高分;
int maxh[10];
int i,j,max;
for(i=0,j=0;i<10;i++){
maxh[i] =a[i][j];//假设每行第一个是最大值
for(j=0;j<5-1;j++){//此行元素分别与之比较,较大值为maxh[i]
if(a[i][j+1]>=maxh[i]){maxh[i]=a[i][j+1];}}}
for(i=0;i<10-1;i++){max=maxh[i];//假设第一列的数是最大值
//整列元素分别与之比较,较大值为max
if(maxh[i+1]>=max){max=maxh[i+1];}}
printf("所有分数中最高分max=%d\n",max);
}