Problem Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
3 3 -4 2
4 0 1 2 -3
0
Sample Output
-4 3 2
-3 2 1 0
好简单就可以实现,自己动手,风衣足食,不难
不是很明白 这是输入是键盘输入 还是用随机数生成?
排序的话
private static void absSort(int[] shus)
{
for(int i=0;i<shus.length-1;i++)
{
for(int j=i+1;j<shus.length;j++)
{
int shu1 = Math.abs(shus[i]);
int shu2 = Math.abs(shus[j]);
if(shu1<=shu2)
{
int shu3 = shus[i];
shus[i] = shus[j];
shus[j] = shu3;
}
}
}
}
看看这个,其实很简单的,要学编程,一定不要懒,自己亲自动手,这样慢慢会越来越好,不要嫌简单就不做。如果是真不会,前面说的忽略!!!
package pratice;
import java.util.Scanner;
public class Main_绝对值排序 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int num=0;
while(true)
{
num=scanner.nextInt();
if(num==0)
{
break;
}
int[] array=new int[num];
for(int i=0;i<num;i++)
{
array[i]=scanner.nextInt();
}
for(int m=0;m<array.length;m++)
{
for(int n=0;n<array.length-m-1;n++)
{
if(Math.abs(array[n])<=Math.abs(array[n+1]))
{
int temp=array[n];
array[n]=array[n+1];
array[n+1]=temp;
}
}
}
for(int i=0;i<array.length-1;i++)
{
System.out.print(array[i]+" ");
}
System.out.println(array[array.length-1]);
}
}
}