#include<stdio.h>
void avger( int a[100][100], int l, int m) {
int i, j;
int sum1[100];
int aver1[100];
int aver[100];
int sum[100];
sum[0]=0;
for (i = 0; i < l; i++) {
for (j = 0; j < m; j++) {
sum[i] += a[i][j];
}
}
for (i = 0; i < m; i++) {
for (j = 0; j < l; j++) {
sum1[i] += a[j][i];
}
}
for (i = 0; i < m; i++) {
aver1[i] = sum1[i] / l;
}
for (i = 0; i < l; i++) {
aver[i] = sum[i] / m;
}
for (i = 0; i < l; i++) {
printf("第%d个学生的平均分为:",i+1);
printf("%d ", aver[i]);
printf("\n");
}
for (i = 0; i < m; i++) {
printf("第%d个科目的平均分为:",i+1);
printf("%d ", aver1[i]);
printf("\n");
}
}
void max(int a[100][100],int l,int m){
int i,j,k,p;
int max=a[0][0],min=a[0][0];
for(i=0;i<m;i++){
for(j=0;j<l;j++){
if(max<a[j][i]){
max=a[j][i];
k=j;
}
if(min>a[j][i]){
min=a[j][i];
p=j;
}
}
printf("第%d科的最高分是:%d号同学\n",i+1,k+1);
printf("第%d科的最低分是:%d号同学\n",i+1,p+1);
}
}
int main()
{
int a[100][100];
int l, m, i, j;
printf("请输入人数和考试科目数:");
scanf("%d %d", &l, &m);
for (i = 0; i < l; i++) {
printf("请输入第%d位学生的%d门成绩:",i+1,m);
for (j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
avger(a,l,m);
max(a,l,m);
return 0;
}
这个求最大最小值的逻辑有点小问题,要给k和p赋初值的,望采纳