第一行包含一个整数C,测试用例的数量。C数据集如下。每个数据集以整数N开始,N是班级的人数(1 <= N <= 1000)。后面跟着N个整数,用空格或换行符分隔,每个整数表示一个学生的最终成绩(0到100之间的整数)。 输出格式: 对于每种情况,你都要输出一条线,给出成绩高于平均水平的学生的百分比,四舍五入到小数点后三位。 输入样例: 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91
时间: 2024-02-18 10:06:01 浏览: 40
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
好的,我明白了。以下是代码实现:
```c++
#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int N;
cin >> N;
vector<int> scores(N);
int sum = 0;
for (int i = 0; i < N; i++) {
cin >> scores[i];
sum += scores[i];
}
double avg = (double) sum / N;
int cnt = 0;
for (int i = 0; i < N; i++) {
if (scores[i] > avg) {
cnt++;
}
}
double percent = (double) cnt / N * 100;
cout << fixed << setprecision(3) << percent << "%" << endl;
}
return 0;
}
```
具体思路如下:
1. 读入测试用例的数量T;
2. 用while循环处理每个测试用例:
1. 读入班级的人数N;
2. 用vector存储每个学生的成绩,并计算成绩总和sum;
3. 计算平均分avg;
4. 统计成绩高于平均分的学生人数cnt;
5. 计算成绩高于平均分的学生所占百分比percent,并输出结果。
3. 结束。
阅读全文