题目内容:
输入n(n<=100)个整数,按照绝对值从大到小排序后输出
输入格式:
输入数据的第一个数字为n,接着是n个整数。
输出格式:
按照绝对值从大到小排序后输出n个整数,两数之间空格隔开,最后一个数后面无空格。
输入样例:
3 3 -4 2
输出样例:
-4 3 2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int compare(const void *a, const void *b)
{
int ia = *(int *)a;
int ib = *(int *)b;
return (ia < 0 ? -ia:ia) - (ib < 0 ? -ib:ib);
}
int n, *p;
scanf("%d", &n);
int arr[n];
for(int i = 0; i < n; i++){
scanf("%d", &arr[i]);
}
qsort(arr, n, sizeof(int), compare);
for(int i = 0; i < n; i++){
printf("%d ", arr[i]);
}
return 0;
}