用Java语言完成此题:考试结束了,全班同学的分数都出来了。老师需要对分数做一次排序,看看从高到低,分数的排列是怎样的。 输入格式: 第一行是一个n,表示班级同学的人数,1<=n<=500000。 第二行开始有n个分数,0<=分数<=100,分数都是整数,没有零点五分。 输出格式: 输出排序后的分数,按照从大到小排列,相同的分数排在一起,每两个分数之间间隔一个空格。 输入样例: 10 0 60 73 60 82 90 100 18 55 84 输出样例: 100 90 84 82 73 60 60 55 18 0
时间: 2023-05-29 09:08:00 浏览: 317
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] scores = new int[n];
for (int i = 0; i < n; i++) {
scores[i] = sc.nextInt();
}
Arrays.sort(scores);
for (int i = n - 1; i >= 0; i--) {
System.out.print(scores[i] + " ");
// 如果当前分数和前一个分数相同,则跳过相同的分数
while (i > 0 && scores[i] == scores[i - 1]) {
i--;
}
}
}
}
```
相关问题
考试结束了,全班同学的分数都出来了。老师需要对分数做一次排序,看看从高到低,分数的排列是怎样的 java代码
可以使用Java内置的排序方法Arrays.sort()来对分数进行排序,示例代码如下:
```java
int[] scores = {90, 85, 92, 88, 95, 80};
Arrays.sort(scores); // 默认从小到大排序
for (int i = scores.length - 1; i >= 0; i--) {
System.out.print(scores[i] + " ");
}
```
这段代码会输出:95 92 90 88 85 80,即按照从高到低的顺序排列后的分数。
如何用Java编写以下程序:考试结束了,全班同学的分数都出来了。老师需要对分数做一次排序,看看从高到低,分数的排列是怎样的。 输入格式: 第一行是一个n,表示班级同学的人数,1<=n<=500000。 第二行开始有n个分数,0<=分数<=100,分数都是整数,没有零点五分。 输出格式: 输出排序后的分数,按照从大到小排列,相同的分数排在一起,每两个分数之间间隔一个空格。
以下是Java代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] scores = new int[n];
for (int i = 0; i < n; i++) {
scores[i] = input.nextInt();
}
Arrays.sort(scores);
for (int i = n - 1; i >= 0; i--) {
System.out.print(scores[i] + " ");
if (i == 0 || scores[i] != scores[i - 1]) {
System.out.println();
}
}
}
}
首先通过Scanner类获取输入,然后创建一个长度为n的整型数组scores,用于存储每个同学的分数。接着使用for循环将每个分数读入数组中。
使用Arrays类的sort方法对scores数组进行排序,默认是从小到大排序。为了按照从大到小排列,需要从数组末尾开始遍历,依次输出每个分数,并在相邻两个分数之间加上一个空格。
为了将相同的分数排在一起,需要在输出分数时判断当前分数是否与前一个分数相同。如果不同,则换行输出。
阅读全文