用java实现。编写程序找出两个分教最高的学生,提示输入学生的个数、每个学生的名字及其分数,最后显示获得最高分的学生和第二高分的学生。
时间: 2024-09-28 21:09:46 浏览: 49
在Java中,我们可以创建一个名为`Student`的类,包含姓名`name`和分数`score`属性,然后用数组或列表存储学生信息,并通过比较分数来找到最高分和次高分的学生。以下是一个简单的实现步骤:
1. 首先,定义`Student`类:
```java
public class Student {
String name;
int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
```
2. 创建主函数,接收学生数量、名字和分数作为输入:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生人数:");
int numStudents = scanner.nextInt();
Student[] students = new Student[numStudents];
for (int i = 0; i < numStudents; i++) {
System.out.println("请输入第" + (i+1) + "位同学的名字:");
String name = scanner.next();
System.out.println("请输入第" + (i+1) + "位同学的分数:");
int score = scanner.nextInt();
students[i] = new Student(name, score);
}
// 找出最高分和次高分
Arrays.sort(students, Comparator.comparingInt(Student::getScore).reversed());
Student highestScore = students[0];
if (numStudents > 1) {
Student secondHighestScore = students[1];
System.out.printf("最高分学生:%s, 分数:%d%n", highestScore.name, highestScore.score);
System.out.printf("次高分学生:%s, 分数:%d%n", secondHighestScore.name, secondHighestScore.score);
} else {
System.out.println("只有一位学生,即是最高分学生.");
}
scanner.close();
}
}
```
在这个例子中,我们首先获取学生数量,然后循环读取每个学生的信息并创建`Student`实例。接着,使用`Arrays.sort`方法对所有学生按分数降序排序,然后找出最高分和第二高的学生。
阅读全文