题目描述
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。
输入
输入数据有多组,每组的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,所有的数的绝对值都不相等。
输出
输出每组测试数据排序后的结果
样例输入 Copy
3 3 -4 2 4 0 1 2 -3 0
样例输出 Copy
-4 3 2 -3 2 1 0
#include <stdio.h>
#include <math.h>
int main(){
int n,i,j,a[100];
while(scanf("%d",&n) != EOF){
for(i = 0;i < n;i++){
scanf("%d",&a[i]);
}
for(i = 0;i < n;i++){
int f = 0;
for(j = 0;j < n - i - 1;j++){
if(abs(a[j]) < abs(a[j + 1])){
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
f = 1;
}
}
if(f == 0) break;
}
for(i = 0;i < n;i++){
printf("%d ",a[i]);
}
}
return 0;
}