zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)

    题目

    读入 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

    C++实现

    #include <iostream>
    #include <string>
    #include <cstring>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int num,max=-1,min=101;
        string name,number,maxname,minname,maxnum,minnum;
        for (int i = 0; i < n; ++i) {
            cin>>name>>number>>num;
            if(num>max)
            {
                maxname=name;
                maxnum=number;
                max=num;
            }
            if(num<min)
            {
                minname=name;
                minnum=number;
                min=num;
            }
        }
        cout<<maxname<<' '<<maxnum<<endl<<minname<<' '<<minnum<<endl;
        return 0;
    }
    

    python实现

    使用input()接收数据行数n,并通过for将详细信息存储在列表中。
    考虑到每行数据都是以空格分割,因此使用.split(’ '),将字符串分割成字符串数组,存到列表中。

    排序使用Python自带的sorted()函数。
    该函数的语法是sorted(iterable[, cmp[, key[, reverse]]]),建议使用key或reverse参数,因为key和reverse比一个等价的cmp处理速度要快(对于每个列表元素,cmp都会被调用多次,而key和reverse只被调用一次)。
    在这里key=lambda x:x[2]包含了一个lambda函数,key取每一行位置为2的数据(即第3列)进行升序排列(reverse = False为升序,默认)。

    n=int(input())
    sheet=[]
    for i in range(0,n):
        sheet.append(input().split(' '))
        sheet[i][2]=int(sheet[i][2])
    a=sorted(sheet,key=lambda x:x[2])
    print(a[-1][0]+' '+a[-1][1])
    print(a[0][0]+' '+a[0][1])
    
  • 相关阅读:
    TP3.2框架,实现空模块、空控制器、空操作的页面404替换||同步实现apache报错404页面替换
    调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)
    JQuery实现的 checkbox 全选;<select>下拉框功能
    使用PHP做移动端 api接口开发方法(适用于TP框架)
    Eclipse jvm启动参数在哪设置
    对 META标签 的一点点了解
    Java反射在整个程序运行中的位置
    Java 为什么要使用反射(通俗易懂的举例)
    粗略介绍Java AQS的实现原理
    Java并发包中线程池的种类和特点介绍
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338517.html
Copyright © 2011-2022 走看看