C++ 考试成绩排序和分数段统计:高效代码示例
以下是一个解决该问题的 C++ 代码示例:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int N;
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
// 将成绩从高到低排序
sort(A.rbegin(), A.rend());
vector<int> B(7, 0); // B[0]用作计数器
for (int i = 0; i < N; i++) {
if (A[i] == 100) {
B[1]++;
} else if (A[i] >= 90 && A[i] <= 99) {
B[2]++;
} else if (A[i] >= 80 && A[i] <= 89) {
B[3]++;
} else if (A[i] >= 70 && A[i] <= 79) {
B[4]++;
} else if (A[i] >= 60 && A[i] <= 69) {
B[5]++;
} else {
B[6]++;
}
}
// 输出排序后的成绩
for (int i = 0; i < N; i++) {
cout << A[i] << endl;
}
// 输出分数段人数统计
for (int i = 1; i <= 6; i++) {
cout << B[i] << " ";
}
cout << endl;
return 0;
}
这个程序首先读取班级人数 N 和 N 个数学分数并存储在 A 数组中。然后使用标准库的 sort 函数将分数从高到低排序。接下来使用 B 数组统计各个分数段的人数,最后按要求输出排序后的成绩和分数段人数统计。
注意,这个示例假设输入的分数都在有效范围内,并且输入符合要求的格式。如果需要对输入进行错误处理和边界检查,还需要添加相应的代码。
原文地址: http://www.cveoy.top/t/topic/pFsc 著作权归作者所有。请勿转载和采集!