60分求助,关注佬

P5738 【深基7.例4】歌唱比赛

``` #include<iostream> #include<algorithm> using namespace std; int n, m; double av[100] = { 0 }, maxa = 0, sum[100] = { 0 };sum数组也要定为double int a[100][20] = { 0 };//全部初始化为零 void asort(int a[], int N) { int i, j; for (i = 0; i < N - 1; i++) { //控制n-1趟冒泡 for (j = 0; j < N - 1 - i; j++) { if (a[j] > a[j + 1]) { //比较相邻的两个元素 int tmp; //临时变量 tmp = a[j]; //交换 a[j] = a[j + 1]; a[j + 1] = tmp; } } } } int main() { cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; sum[i] += a[i][j]; } asort(a[i], m); }for (int i = 0; i < n; i++) { sum[i] -= (a[i][0] + a[i][m - 1]); av[i] = sum[i] / (m - 2); maxa = max(av[i], maxa); } printf("%.2lf", maxa); return 0; } ```
by czy0407 @ 2024-03-12 11:46:17


``` av[i] = sum[i] / (m - 2); ``` 主要是这句 因为sum为int类型,后面一块是int类型的,会自动四舍五入化成整数 改成 ``` av[i] = 1.0*sum[i] / (m - 2); ``` 也行
by czy0407 @ 2024-03-12 11:48:07


@[HeyuNas](/user/1298000) ```c #include<bits/stdc++.h> using namespace std; int main(){ int n, m; float ans = 0; cin >> n >> m; for(int i = 0; i < n; i++){ int sum = 0, max = 0, min = 10; for(int j = 0; j < m; j++){ int score; cin >> score; sum += score; max = std::max(score, max); min = std::min(score, min); } sum = sum - max - min; ans = std::max(ans, (float)sum / (m - 2)); } printf("%.2f", ans); } ```
by chy0817 @ 2024-03-17 15:33:22


|