c++ 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等
时间: 2023-09-26 20:14:26 浏览: 158
C语言实验-输入4个整数,要求按由小到大(或由大到小)顺序输出。
5星 · 资源好评率100%
以下是一个简单的C++代码实现:
```c++
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
bool cmp(int a, int b) {
return abs(a) > abs(b); // 按绝对值大小降序排列
}
int main() {
int n, nums[100];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums, nums + n, cmp); // 使用排序函数进行排序
for (int i = 0; i < n; i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
代码解析:
1. `bool cmp(int a, int b)` 是一个比较函数,用于排序时比较两个数的大小。这里采用的是按绝对值大小降序排列,如果 `abs(a)` 大于 `abs(b)` 则返回 `true`,否则返回 `false`。
2. 在 `main()` 函数中,首先输入整数 `n` 和 `n` 个整数,然后使用 `sort` 函数对数组进行排序,排序方式为按照 `cmp()` 函数的规则,将数组从大到小排序。
3. 最后输出排序后的数组。
这样就完成了题目要求的功能。
阅读全文