
为什么我输出结果不正确呢 哪里出现了问题 为什么会有这个结果 应该如何更正呢
第29行for循环的循环条件改为j<2改为j<5即可,因为二维数组a是5列。
修改如下:
#include <stdio.h>
int aver(int a[][5]);
int main(void){
int a[4][5];
int i,j;
printf("请输入他们的成绩:\n");
for(i=0;i<4;i++){
for(j=0;j<5;j++){
scanf("%d",&a[i][j]);
}
}
aver(a);
return 0;
}
int aver(int a[][5]){
int i,j;
printf("平均分为:");
// for(i=0;i<4;i++){
//
// int sum=0;
// for(j=0;j<5;j++){ // 这里for循环的循环条件改为j<5,因为二维数组a是5列
// sum+=a[i][j];
// }
//
//
// // printf("%d ",sum/5);
// printf("%.2f ", sum/5.0); // 如果平均分要保留2位小数,使用这行
// }
int sum=0;
// 求4个学生第1科成绩的平均分,假设第一科成绩在第1列
for(i=0;i<5;i++){
sum+=a[i][0];
}
printf("%d",sum/4);
}
