生成20个[10,30]内的随机整数,并按绝对值从大到小排序。输出排序后的数组元素。c++
时间: 2024-05-03 09:17:03 浏览: 77
C语言程序设计-产生20个[30,120]上的随机整数放入二维数组a[5][4]中, 求其中的最小值;.c
以下是C++代码实现:
```cpp
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main() {
int arr[20];
for (int i = 0; i < 20; i++) {
arr[i] = rand() % 21 + 10; // 生成10到30的随机整数
if (rand() % 2 == 0) { // 随机取相反数
arr[i] = -arr[i];
}
}
sort(arr, arr + 20, [](int a, int b){ return abs(a) > abs(b); }); // 按绝对值从大到小排序
for (int i = 0; i < 20; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
其中,我们使用了 `rand()` 函数来生成随机整数,使用了 `sort()` 函数来排序。排序时使用了 lambda 表达式,它的作用是比较两个数的绝对值大小,从而实现按绝对值从大到小排序。
阅读全文