3867 - 4.9 找出两个最高

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

编写程序,提示用户输入学生的个数、每个学生的名字及其分数,最后显示获得最高分的学生和第二高分的学生。(本题中所有学生的分数均不相同)

题目输入

首先输入一行是一个正整数为学生个数n,然后输入n行,每行两个值,分别是学生名字和他的分数

题目输出

输出获得最高分的学生和第二高分的学生。格式如下:
最高分学生姓名 第二高分学生姓名

输入/输出样例

输入格式

3
张三 68
李四 97
王五 77

输出格式

李四 王五

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int i = 1;
		String A = input.next();
		double scoreA = input.nextDouble();
		double scoreB = scoreA;
		String B = A;
		if (n == 1) {
			System.out.print(A);
		} 
		else {
			while (i < n) {
				String C = input.next();
				double scoreC = input.nextDouble();
				if (scoreC > scoreA) {
					scoreB = scoreA;
					B = A;
					scoreA = scoreC;
					A = C;
				} 
				else {
					if (scoreC > scoreB) {
						scoreB = scoreC;
						B = C;
					}
				}
				i = i + 1;
			}
			System.out.print(A +" " + B);
		}
	}

}