绝对值排序

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]);

      }
   }

}