题目:绝对值排序
输入 n(n≤100) 个整数,按照绝对值从大到小排序后输出。题目保证所有的数的绝对值都不相等。
输入格式:
第一个数字为 n接着是 n个整数。
输出格式:
输出这 n个整数排序后的结果。
Sample Input
3
3 -4 2
Sample Output
-4 3 2
注意:
其中运用了冒泡排序,abs为绝对值函数(int)
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,a[101];
int j,t;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
for(j=0;j<n-i;j++){
if(abs(a[j])<abs(a[j+1])){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<n;i++){
if(i<n){
printf("%d ",a[i]);
}else{
printf("%d ",a[i]);
a[i]=0;
}
}
return 0;
}
}