绝对值排序

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

 1 #include <stdio.h>
 2 #include <math.h>
 3  
 4 int main(){
 5     int n;
 6     int number[101];
 7     int i;
 8     int j;
 9     int temp;
10      
11     while(1){
12         scanf("%d",&n);
13          
14         if(n==0)
15             break;
16              
17         for(i=0;i<n;i++)
18             scanf("%d",&number[i]);
19              
20         for(i=0;i<n-1;i++){
21             for(j=i+1;j<n;j++){
22                 if(fabs(number[i])<(fabs(number[j]))){
23                     temp=number[i];
24                     number[i]=number[j];
25                     number[j]=temp;
26                 }
27             }
28         }
29          
30         for(i=0;i<n;i++){
31             printf("%d",number[i]);
32              
33             if(i!=n-1)
34                 printf(" ");
35         }
36          
37         printf("
");
38          
39     }
40      
41          
42     return 0;
43 }
原文地址:https://www.cnblogs.com/zqxLonely/p/4054357.html