zoukankan      html  css  js  c++  java
  • [PAT乙级] Practise 1004 成绩排名

    PAT (Basic Level) Practice (中文)1004

    1004 成绩排名

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

    输入格式:

    每个测试输入包含 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类封装一下所需要的数据,并定义一个Map方便存数据。

    因为最少会有两个学生的数据,所以我们在获取第二条学生数据时比较出此时成绩最高(Max)和最低(Min)学生的key,之后的数据与当前时刻的Max、Min比较即可。

    代码:

    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;
    class Student {
    	
    public:
    	Student() {
    		name = "";
    		no = "";
    		fraction = -1;
    	}
    	string name;
    	string no;
    	int fraction;
    };
    int main() {
    	map<int, Student> tab;
    	int n;
    	string str;
    	int min = 0;
    	int max = 0;
    	cin >> n;
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < 3; j++){
    			switch (j){
    				case 0:cin >> tab[i].name; break;
    				case 1:cin >> tab[i].no;   break;
    				case 2:cin >> tab[i].fraction; break;
    			}
    		}
    		if (i == 1) 
    			tab[1].fraction > tab[0].fraction ? max = 1 : min = 1;		
    		if (i > 1) {
    			if (tab[i].fraction > tab[max].fraction)
    				max = i;
    			if (tab[i].fraction < tab[min].fraction)
    				min = i;
    		}
    	}
    	cout << tab[max].name << ' ' << tab[max].no << endl;
    	cout << tab[min].name << ' ' << tab[min].no << endl;
    }
    
  • 相关阅读:
    Flash、Ajax各自的优缺点,在使用中如何取舍?
    纯CSS气泡框实现方法探究
    CSS里padding和margin的区别是什么?
    img图片标签alt和title属性的区别
    JS中都有哪些数据类型呢?
    剑指offer---按只字形顺序打印二叉树
    剑指offer---序列化二叉树
    剑指offer---二叉树的下一个结点
    剑指offer---二叉树的深度
    剑指offer---平衡二叉树
  • 原文地址:https://www.cnblogs.com/eisuto/p/12422787.html
Copyright © 2011-2022 走看看