C++ 实现定义和随机初始化一个(具有20个元素/值域在-99到99的)局部整数数组,对数组中的数据进行排序并在控制台输出;对数组中的数据按绝对值大小进行排序。
时间: 2023-05-15 17:05:06 浏览: 223
以下是 CSDN 开发的 C知道 的回答:
可以使用以下代码来实现定义和随机初始化一个具有20个元素/值域在-99到99的局部整数数组,并对数组中的数据进行排序并在控制台输出:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define SIZE 20
int cmp(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int abs_cmp(const void *a, const void *b) {
return (abs(*(int*)a) - abs(*(int*)b));
}
int main() {
int arr[SIZE];
srand(time(NULL));
for (int i = 0; i < SIZE; i++) {
arr[i] = rand() % 199 - 99;
printf("%d ", arr[i]);
}
printf("\n");
qsort(arr, SIZE, sizeof(int), cmp);
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
qsort(arr, SIZE, sizeof(int), abs_cmp);
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了 `srand` 函数来初始化随机数生成器,使用 `rand` 函数来生成随机数,并使用 `qsort` 函数来对数组进行排序。我们定义了两个比较函数 `cmp` 和 `abs_cmp`,分别用于按照数值大小和按照绝对值大小排序。最后,我们在控制台输出了排序后的数组。
注意,我们在代码中使用了 `math.h` 头文件中的 `abs` 函数来计算绝对值。如果你不想使用这个函数,也可以手动实现一个计算绝对值的函数。
希望这个回答能够帮助到你!
阅读全文