【浙江大学PAT真题练习乙级】1004 成绩排名 (20分) 真题解析

简介: 【浙江大学PAT真题练习乙级】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<stdio.h>
#include<string.h>
int main(){
    int n=0;
    scanf("%d",&n);
    struct student_info{
        char name[11];
        char stu_num[11];
        int score;
    };
    struct student_info student, max, min;
    scanf("%s %s %d",&student.name,&student.stu_num,&student.score);
    max=min=student;
    for(int i=1;i<n;i++){
        scanf("%s %s %d",&student.name,&student.stu_num,&student.score);
        if (student.score > max.score){
            max = student;
        }
        if (student.score < min.score){
            min = student;
        }
    }
    printf("%s %s \n", max.name, max.stu_num);
    printf("%s %s \n", min.name, min.stu_num);
    return 0;
}

Python实现

  在python中用类表示结构体,并且python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量本身。因此需要用copy赋值。数据读入的时候是以空格为分隔符,调用split()函数。

import copy
n = int(input())
class student_info:
    def __init__(self):
        self.name = ""
        self.stu_num = ""
        self.score = 0
max_score = student_info()
min_score = student_info()
student = student_info()
name, stu_num, score = input().split(" ")
student.name = name
student.stu_num = stu_num
student.score = int(score)
max_score = copy.copy(student)
min_score = copy.copy(student)
for i in range(n-1):
    name, stu_num, score = input().split(" ")
    student.name = name
    student.stu_num = stu_num
    student.score = int(score)
    if int(score) > max_score.score:
        max_score = copy.copy(student)
    if int(score) < min_score.score:
        min_score = copy.copy(student)
print(max_score.name, max_score.stu_num)
print(min_score.name, min_score.stu_num)


相关文章
|
19天前
|
Java API
Java之File类的详细解析及小练习
2. File类 2.1 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 2.2 构造方法
39 0
|
10月前
|
测试技术 C++ Python
【浙江大学PAT真题练习乙级】1005 继续(3n+1)猜想 (25分) 真题解析
【浙江大学PAT真题练习乙级】1005 继续(3n+1)猜想 (25分) 真题解析
|
19天前
|
SQL 算法 vr&ar
☆打卡算法☆LeetCode 178. 分数排名 算法解析
☆打卡算法☆LeetCode 178. 分数排名 算法解析
|
19天前
|
前端开发 程序员
CSS基础详细解析(附带综合小练习)(2)
文本缩进 属性名:text-indent 属性值:
40 0
|
19天前
|
前端开发 JavaScript
CSS基础详细解析(附带综合小练习)(1)
目标:掌握 CSS 属性基本写法,能够使用文字相关属性美化文章页。 01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。
38 0
|
10月前
|
测试技术 C++ Python
【浙江大学PAT真题练习乙级】1009 说反话 (20分)真题解析
【浙江大学PAT真题练习乙级】1009 说反话 (20分)真题解析
|
10月前
|
存储 机器学习/深度学习 测试技术
【浙江大学PAT真题练习乙级】1008 数组元素循环右移问题 (20分)真题解析
【浙江大学PAT真题练习乙级】1008 数组元素循环右移问题 (20分)真题解析
|
10月前
|
C++ Python
【浙江大学PAT真题练习乙级】1007 素数对猜想 (20分) 真题解析
【浙江大学PAT真题练习乙级】1007 素数对猜想 (20分) 真题解析
|
10月前
|
测试技术 C语言 C++
【浙江大学PAT真题练习乙级】1006 换个格式输出整数 (15分) 真题解析
【浙江大学PAT真题练习乙级】1006 换个格式输出整数 (15分) 真题解析
|
10天前
|
移动开发 网络协议 安全
HTML5页面被运营商DNS问题及解决方案,app中h5页面源码的获取
HTML5页面被运营商DNS问题及解决方案,app中h5页面源码的获取
67 4

推荐镜像

更多