2020 绝对值排序

 

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

 

code:

 1 #include<cmath>
 2 #include<iostream>
 3 using namespace std;
 4 
 5 int main(){
 6     int n,m;
 7     int i,j;
 8     int a[101];
 9     while(cin >> n,n)
10     {
11         for(i=0;i<n;i++)
12             cin >> a[i];
13         for(i=n;i>0;i--)
14             for(j=1;j<i;j++)
15             {
16                 if(fabs((double)a[j])>fabs((double)a[j-1]))
17                 {
18                     m=a[j];
19                     a[j]=a[j-1];
20                     a[j-1]=m;
21                 }
22             }
23         for(i=0;i<n;i++)
24         {
25             if(i>0)
26                 cout << ' ';
27             cout << a[i];
28         }
29         cout <<endl;
30     }
31     return 0;
32 }

 

posted on 2013-12-29 22:56  acm_shun  阅读(146)  评论(0)    收藏  举报

导航