// double a[m```
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int m, n;//定义m名同学,n名评委
cin >> m >> n;
int arr[100][20] = { 0 };//创建一个二维数组存放每次评委给选手打分
int sum[20] = { 0 };//创建一个一维数组存放选手总分
double max_aver = 0.00;//定义最高分数
//使用循环嵌套
for (int i = 0; i < m; i++) {
double aver = 0.00;
int min = 10;//初始化选手最低分为10分
int max = 0; //初始化选手最高分0分
for (int j = 0; j < n; j++) {
cin >> arr[i][j];//输入裁判评分
//每次刷新最高最低分
if (arr[i][j] > max) { max = arr[i][j]; }
if (arr[i][j] < min) { min = arr[i][j]; }
sum[i] += arr[i][j];//依次获取评委评分
}
aver = (sum[i] - max - min);//获取选手去除最高分最低分后的总分
aver /= (n - 2); //得到选手的平均分
if (aver > max_aver) { max_aver = aver; }//依次比较,获得场上最高分
}
cout << fixed << setprecision(2) << max_aver<< endl;//保留两位小数输出最高平均分
return 0;
}
```
][n];m和n作为变量不能定义数组大小,这里是错的(可能版本不同,也说不一定);但是后面你的二维数组只罗列了第一行和第二行,没有罗列完,可能条件写错了
//后面附上我的代码:
/*
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int m, n;//定义m名同学,n名评委
cin >> m >> n;
int arr[100][20] = { 0 };//创建一个二维数组存放每次评委给每位选手打分
int sum[20] = { 0 };//创建一个一维数组存放选手总分
double max_aver = 0.00;//定义最高分数
//使用循环嵌套
for (int i = 0; i < m; i++) {
double aver = 0.00;
int min = 10;//初始化选手最低分为10分
int max = 0; //初始化选手最高分0分
for (int j = 0; j < n; j++) {
cin >> arr[i][j];//输入裁判评分
//每次刷新最高最低分
if (arr[i][j] > max) { max = arr[i][j]; }
if (arr[i][j] < min) { min = arr[i][j]; }
sum[i] += arr[i][j];//依次获取评委评分
}
aver = (sum[i] - max - min);//获取选手去除最高分最低分后的总分
aver /= (n - 2); //得到选手的平均分
if (aver > max_aver) { max_aver = aver; }//依次比较,获得场上最高分
}
cout << fixed << setprecision(2) << max_aver<< endl;//保留两位小数输出最高平均分
return 0;
}
*/
by guyu04 @ 2023-01-04 01:57:51