用java写题目描述 输入10个学生的学号、姓名和成绩,计算并输出平均分,再按照从高分到低分的顺序输出他们的信息。 此题要求:分数相同,保持输入时的顺序 输入 输入10个学生的学号、姓名和成绩。学号和成绩用整数表示,姓名是一个长度不超过19个字符的字符串。 输出 输出平均分,再按照从高分到低分的顺序输出10个学生的信息。 并列分数保持输入时的顺序。 样例输入 复制 101 aaa 80 102 bbb 90 103 ccc 70 104 ddd 59 105 eee 79 106 fff 61 107 ggg 78 108 hhh 80 109 iii 68 110 jjj 81 样例输出 复制 The average: 74 The student score: 102 bbb 90 110 jjj 81 101 aaa 80 108 hhh 80 105 eee 79 107 ggg 78 103 ccc 70 109 iii 68 106 fff 61 104 ddd 59
时间: 2024-03-14 10:48:22 浏览: 58
好的,这是一道经典的Java编程题目,需要用到数组和排序算法。以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = 10;
int[] id = new int[n];
String[] name = new String[n];
int[] score = new int[n];
int sum = 0;
for (int i = 0; i < n; i++) {
id[i] = scanner.nextInt();
name[i] = scanner.next();
score[i] = scanner.nextInt();
sum += score[i];
}
double average = (double) sum / n;
System.out.println("The average: " + average);
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (score[j] > score[i] || (score[j] == score[i] && id[j] < id[i])) {
int temp1 = id[i];
id[i] = id[j];
id[j] = temp1;
String temp2 = name[i];
name[i] = name[j];
name[j] = temp2;
int temp3 = score[i];
score[i] = score[j];
score[j] = temp3;
}
}
}
System.out.println("The student score:");
for (int i = 0; i < n; i++) {
System.out.println(id[i] + " " + name[i] + " " + score[i]);
}
}
}
```
这段代码的思路是:首先使用三个数组分别保存学生的学号、姓名和成绩,并通过`Scanner`类从标准输入中读取10个学生的信息,并计算平均分;接着使用冒泡排序算法按照成绩从高到低的顺序排序学生信息,如果成绩相同,则按照学号从小到大的顺序排序,并输出排序后的结果。
阅读全文