m0_46694363
岚汀
采纳率0%
2020-03-30 17:35

新人求助!!!C++结构体数组编写,对10名小学生的信息进行管理

学生结构体的成员包括姓名、学号、年龄、语文成绩、数学成绩、英语成绩、三门课总分等,具体要求如下

(1)要求通过键盘完成各位小学生的信息录入(需要具有良好的界面输入提示,例如“现在请输入第1位小学生的信息,现在请输入姓名”之类)

(2)若输入的年龄小于6岁或大于14岁,显示年龄超出有效范围,要求重新输入,三门课程的成绩有效范围为0-100之间,否则显示成绩超出有效范围,要求重新输入

(3)对所有学生的三门课成绩进行总分计算,显示出所有10位学生的完整信息,在第一行需要显示出各列的标题,即姓名,学号,年龄等等这些字段的名称

(4)总分排名,对所有学生的总分进行排名,显示内容包括排名,学生姓名,总分

(5)单科最高分显示,显示三门课程的每一门课最高分的学生信息。

我前三个要求能做到,但是不知道怎么进行排名!!!求助!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_46694432 大佬下手轻点 1年前
    #include <bits/stdc++.h>//万能头文件
    
    using namespace std;
    
    struct node{
            string name;
            int ch;
            int ma;
            int en;
            int score;
            int age;
    }arr[MAXN];
    
    bool pm(node &a, node &b){
        return a.score > b.score;
    }
    
    int main(){
        int n;//n 为 学生人数
            /*
            your code
            */
            for (int i = 0; i < n; ++i){
                arr[i].score = arr[i].ch + arr[i].ma + arr[i].en;
            }
        sort(arr, arr + n, pm);
            /*
            your code
            */
            return 0;
    }
    
    
    

    这就是主要代码

    点赞 评论 复制链接分享