PAT (Basic Level) Practise (中文)
1004. 成绩排名 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入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
C++:
#include <iostream> using namespace std; struct Student { char name[12];//当定义为10的时候,当名字为10个字符,name会和id连在一起输出 char id[10]; int score; }; int main() { int n; int maxValue=-1,minValue=101; int maxId,minId; cin>>n; Student *st = new Student[n]; for(int i = 0;i<n;++i){ cin>>st[i].name>>st[i].id>>st[i].score; } for(int i = 0;i<n;++i){ if(st[i].score>maxValue){ maxId = i; maxValue = st[i].score; } if(st[i].score<minValue){ minId = i; minValue = st[i].score; } }
//仔细读题很重要 //cout<<st[maxId].name<<" "<<st[maxId].id<<" "<<st[maxId].score<<endl; //cout<<st[minId].name<<" "<<st[minId].id<<" "<<st[minId].score<<endl;
cout<<st[maxId].name<<" "<<st[maxId].id<<endl; cout<<st[minId].name<<" "<<st[minId].id; return 0; }
Java:
import java.util.List; import java.util.Scanner; import java.util.ArrayList; public class Main { /** * @param args */ class Student{ public String name; public String id; public int score; } public static void main(String[] args) { // TODO Auto-generated method stub Main ma = new Main(); Scanner input = new Scanner(System.in); int n = input.nextInt(); int maxValue=-1,minValue=101; // int maxId=0,minId=0; // List<Student> list= new ArrayList<Student>(); Student temp = ma.new Student(); Student maxOne=ma.new Student(); Student minOne=ma.new Student(); for(int i =0;i<n;++i){ temp.name =input.next(); temp.id = input.next(); temp.score = input.nextInt(); //list.add(temp); if(temp.score>maxValue){ maxOne.name = temp.name; maxOne.id = temp.id; maxOne.score = temp.score; maxValue = temp.score; } if(temp.score<minValue){ minOne.name = temp.name; minOne.id = temp.id; minOne.score = temp.score; minValue = temp.score; } } System.out.println(maxOne.name + " "+maxOne.id); System.out.print(minOne.name + " "+minOne.id); } }