问题描述:输入n(n《=100),按照绝对值从大到小排序后输出,题目保证对于每 个测试用例,所有数的绝对值都不相等。输入格式:输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据结束,不作处理。输出格式:对于每个测试用例,输出排序后的结果,两个数之间用一个空格隔开。每个测试用例占一行。 输入样例: 3 3 -4 2 4 0 1 2 -3 0 输出样例: -4 3 2 -3 2 1 0Java代码
时间: 2024-03-02 09:50:37 浏览: 74
很高兴为您解答问题!以下是 Java 代码实现:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
int n = scanner.nextInt();
if (n == 0) break;
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
Arrays.sort(nums, (a, b) -> -Integer.compare(Math.abs(a), Math.abs(b)));
for (int i = 0; i < n; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
}
}
}
```
使用 `Arrays.sort` 对数组进行排序,排序规则为先按照绝对值大小排序,再按照原数值大小排序。对于绝对值相等的数,原数值越大的排在越前面。
阅读全文