你这程序照说根本运行不了的,
1.第一行你的i,j根本就没初始值,怎么能定义int a[i][j]
2.在计算每个选手初始值的时候,要把sum置0,
3.sum是float,不能用%d输出,改动后如下
#include
int main() { //输入各选手得分
int n,m,i,j;
printf("请输入选手总数:");
scanf("%d",&n);
printf("请输入评委总数(3个以上):");
scanf("%d", &m);
int a[n][m];
for (i = 0; i < n; i++) {
printf("请输入第%d个选手的全部分数(整数):", i+1);
for (j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
printf("\n"); //起泡排序
int temp,t;
for (i = 0; i < n; i++) {
printf("第%d个选手分数 由小到大 排序:", i + 1);
for (t = 0; t < m-1; t++) {
for (j = 0; j < m-t-1; j++) {
if (a[i][j] > a[i][j + 1]) {
temp = a[i][j+1];
a[i][j+1] = a[i][j];
a[i][j] = temp;
}
}
}
for (j = 0; j < m; j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
//求平均分
float sum;
for (i = 0; i < n; i++) {
sum=0;
printf("第%d个选手的平均分:",i+1);
for (j = 1; j < m-1; j++) {
sum+=a[i][j];
}
printf("%d\n",(int)sum/(m-2));
}
}
图片中第1人分数的排序,什么地方出了错?
请粘贴程序的代码上来,才能调试的。
在第49行,需要加入:
sum=0;
第55行,要改为%f
平均分是一个float,不能用%d输出。
还有,不是起泡排序。。。