c语言编写输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有数的绝对值都不相等。
时间: 2023-09-26 14:14:55 浏览: 241
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
可以直接使用C语言的qsort函数来排序,排序的规则是绝对值从大到小。具体代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100
int cmp(const void *a, const void *b)
{
int abs_a = abs(*((int*)a));
int abs_b = abs(*((int*)b));
return abs_b - abs_a;
}
int main()
{
int n;
int a[MAX_N];
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(int), cmp);
for (int i = 0; i < n; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
当然,这段代码有许多可以优化的地方,但是按照题目要求,这样实现就够了。
阅读全文