以下是使用 C++ 编写的综合项目计分程序,用于计算运动员在综合项目中的总积分和排名:

#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>

struct Athlete {
    std::string name;
    double totalScore;
};

bool compareAthletes(const Athlete& a, const Athlete& b) {
    return a.totalScore > b.totalScore; // 按总积分降序排列
}

int main() {
    int numProjects, numAthletes;
    std::cout << '请输入综合项目的子项目个数:';
    std::cin >> numProjects;
    std::cout << '请输入参赛运动员数目:';
    std::cin >> numAthletes;

    std::vector<Athlete> athletes(numAthletes);
    for (int i = 0; i < numAthletes; i++) {
        std::cout << '请输入第 ' << i + 1 << ' 个运动员的姓名:';
        std::cin >> athletes[i].name;

        athletes[i].totalScore = 0;
        for (int j = 0; j < numProjects; j++) {
            double score;
            std::cout << '请输入 ' << athletes[i].name << ' 在第 ' << j + 1 << ' 个子项目的成绩:';
            std::cin >> score;
            if (j == 0) {
                athletes[i].totalScore += 10 * score; // 第1名积10分
            } else if (j == 1) {
                athletes[i].totalScore += 7 * score; // 第2名积7分
            } else if (j >= 2 && j <= 6) {
                athletes[i].totalScore += (7 - j) * score; // 第3到第7名分别积5、4、3、2、1分
            }
        }
    }

    std::sort(athletes.begin(), athletes.end(), compareAthletes); // 按总积分排序

    std::cout << '参赛运动员的排名及总积分:' << std::endl;
    for (int i = 0; i < numAthletes; i++) {
        std::cout << '第 ' << i + 1 << ' 名:' << athletes[i].name << ' ' << athletes[i].totalScore << std::endl;
    }

    return 0;
}

程序运行后,按照提示输入综合项目的子项目个数和参赛运动员数目。然后依次输入每个运动员的姓名和各个子项目的成绩。程序会计算各个运动员的积分和排名,并按照排名高低输出参赛运动员的信息,包括排名、姓名和总积分。

C++ 综合项目计分程序 - 计算运动员总积分和排名

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

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