zoukankan      html  css  js  c++  java
  • 3.PAT 1004 成绩排名

    题目:

    读入 n(>)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

    输入格式:

    每个测试输入包含 1 个测试用例,格式为

    1 行:正整数 n
    第 2 行:第 1 个学生的姓名 学号 成绩
    第 3 行:第 2 个学生的姓名 学号 成绩
      ... ... ...
    第 n+1 行:第 n 个学生的姓名 学号 成绩
    

    其中姓名学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

    输出格式:

    对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

    输入样例:

    3
    Joe Math990112 89
    Mike CS991301 100
    Mary EE990830 95
    

    输出样例:

    Mike CS991301
    Joe Math990112

    思路:
         每个学生信息包含姓名,学号,成绩,因此可以写一个student类(用结构体也能实现),类中包含set和get方法。
       首先由用户给出学生数量,然后用循环来读取各项。并将每个学生的信息都保存在一个vector中,以便最后输出结果。
    用变量 max_grade , min_grade 分别记录最大最小成绩,用 max_index , min_index 分别记录对应学生索引,在用户输入数据的同时,进行变量的记录与更新, 最后将结果输出即可。

    代码:
    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;

    class student {
    private:
    string name;
    string ID;
    int grade;

    public:
    void set_name(string new_name) {
    name = new_name;
    }

    string get_name() {
    return name;
    }

    void set_ID(string new_ID){
    ID = new_ID;
    }

    string get_ID() {
    return ID;
    }

    void set_grade(int new_grade) {
    grade = new_grade;
    }

    int get_grade() {
    return grade;
    }
    };

    int main()
    {
    cout << "Enter n: " ;
    int n = 0;
    cin >> n;

    vector<student> students;
    student current_stu;
    string name, ID;
    int grade = 0;
    int max_grade = 0, min_grade = 101, max_index = 0, min_index = 0;

    for (int i = 0; i < n; ++i) {
    cout << "Enter name : ";
    cin >> name;
    current_stu.set_name(name);

    cout << "Enter ID : ";
    cin >> ID;
    current_stu.set_ID(ID);

    cout << "Enter grade : ";
    cin >> grade;
    current_stu.set_grade(grade);
    if (grade > max_grade) {
    max_grade = grade;
    max_index = i;
    }
    if (grade < min_grade) {
    min_grade = grade;
    min_index = i;
    }
    students.push_back(current_stu);
    }

    cout << "MAX Name : " << students[max_index].get_name() << endl;
    cout << "Min Name : " << students[min_index].get_name() << endl;

    return 0;
    }

      
  • 相关阅读:
    Java实现 LeetCode 343 整数拆分(动态规划入门经典)
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 338 比特位计数
    H264(NAL简介与I帧判断)
    分享一段H264视频和AAC音频的RTP封包代码
  • 原文地址:https://www.cnblogs.com/Hello-Nolan/p/12094107.html
Copyright © 2011-2022 走看看