输入 n(n \le 100)n(n≤100) 个整数,按照绝对值从大到小排序后输出。题目保证所有的数的绝对值都不相等。
输入格式
第一个数字为 nn,接着是 nn 个整数。
输出格式
输出这 nn 个整数排序后的结果。
#include<stdio.h>
#include<math.h>
struct Data{
int fab;
int sign;
}data[1000];
struct Data tmp;
int main(){
int n;
int i,j;
int x;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x);
if(x<0) {data[i].fab=-x;
data[i].sign=1;}
else data[i].fab=x;
}
for(i=0;i<n;i++){
for(j=n-1;j>i;j--){
if(data[j].fab>data[j-1].fab){
tmp=data[j];
data[j]=data[j-1];
data[j-1]=tmp;
}
}
}
for(i=0;i<n;i++){
if(data[i].sign==1) printf("%d ",-data[i].fab);
else printf("%d ",data[i].fab);
}
return 0;
}