题目描述:
排序我们都做过,但是都只针对所有的数值的大小,但是,如果我们把排序的条件改成以绝对值为排序的条件呢?请你给指定的数据按照绝对值的大小进行从小到大的排序。
输入格式:
数据共两行
第一行包括一个整数
第二行有n个整数(数据范围不超过longint),且两两之间用一个空格隔开(输入数据中的每个整数的绝对值均不相同)。
输出格式:
输出排序结果,每一个占一行,共n行。
输入样例:
3
3 -4 2
输出样例:
2
3
-4
数据范围和提示:
可以使用数组来完成。也可以使用其他的方法。
分类标签:
数组 排序
#include<stdio.h>
#include<math.h>
int main() {
int n,i,b,temp,j;
scanf("%d",&n);
int arr[n];
for(i=0; i<n; i++) {
scanf("%d",&arr[i]);
}
for(i=1; i<n; i++) {
for(j=0; j<n-i; j++) {
if(abs(arr[j])>abs(arr[j+1])) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0; i<n; i++){
printf("%d\n",arr[i]);
}
return 0;
}