以下是一个解决该问题的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数组统计各个分数段的人数,最后按要求输出排序后的成绩和分数段人数统计。

注意,这个示例假设输入的分数都在有效范围内,并且输入符合要求的格式。如果需要对输入进行错误处理和边界检查,还需要添加相应的代码

C++小红所在的班级进行了数学考试老师请小红同学帮忙进行名次排序和各分数段的人数统计工作。现要求如下:将N名同学的考试成绩放在A数组中各分 数段的人数存到B数组中:成绩为100的人数存到B1中成绩为90到99的人数存到B2中成绩为80到89的人数存到B3中成绩为70到79的人数存到B4中成绩为60到69的人数存到B5中成绩为60分以下的人数存到B6中。输入描述:第一行:为小红所在班级的人数N其中1

原文地址: https://www.cveoy.top/t/topic/hWo9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录