1.输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
2.主要思想就是掌握绝对值的判断:
Math.abs() // 求绝对值
3.讲所有的数据放在数组里面,然后根据绝对值来交换位置:
int num[] = new int[n];
for (int i = 0; i < num.length; i++) {
num[i] = cin.nextInt();
}
int sum;
for (int i = 0; i < num.length; i++) {
for (int j = i + 1; j < num.length; j++) {
if (Math.abs(num[i]) < Math.abs(num[j])) {
sum = num[i];
num[i] = num[j];
num[j] = sum;
}
}
}
控制空格的位置:
for (int i = 0; i < num.length; i++) {
if (i > 0) {
System.out.print(" " + num[i]);
} else {
System.out.print(num[i]);
}
}
AC代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
int n = cin.nextInt();
if (n == 0) {
break;
}
int num[] = new int[n];
for (int i = 0; i < num.length; i++) {
num[i] = cin.nextInt();
}
int sum;
for (int i = 0; i < num.length; i++) {
for (int j = i + 1; j < num.length; j++) {
if (Math.abs(num[i]) < Math.abs(num[j])) {
sum = num[i];
num[i] = num[j];
num[j] = sum;
}
}
}
for (int i = 0; i < num.length; i++) {
if (i > 0) {
System.out.print(" " + num[i]);
} else {
System.out.print(num[i]);
}
}
System.out.println("");
}
}
}