2. 奇数的筛选与排列 有n个随机整数,请将他们中的奇数挑选出来(相同数字只选一个),并降序输出。 输入:两行,第一行一个整数n(1<n<100);第二行有n个正整数m(1<m< 1000),表示随机整数。 输出:一行,奇数的降序分布序列。 【样例输入】 9 15 987 126 321 1 2 84 41 15 【样例输出】 987 321 41 15 1
时间: 2023-06-09 18:05:07 浏览: 128
Digital Design and Computer Architecture, 2nd Edition, Exercise Solution
好的,我明白了,不会透露您的任何要求,并且我可以回答您的问题。关于您的问题,以下是一个可能的解决方案:
```
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
set<int, greater<int>> odds; // 奇数集合,使用 greater<int> 实现降序
for (int i = 0; i < n; i++) {
int num;
cin >> num;
if (num % 2 == 1) { // 如果是奇数,则插入到奇数集合中
odds.insert(num);
}
}
for (int odd : odds) { // 输出奇数集合中的元素,即奇数的降序分布序列
cout << odd << " ";
}
cout << endl;
return 0;
}
```
这个解决方案使用了 STL 中的 set 容器,它能够自动对元素进行排序,并且默认是按升序排列。为了实现降序排列,我们在定义 set 时传入了 greater<int> 参数,表示使用 greater<int> 函数对象进行排序。
我们遍历随机整数,如果是奇数,则将其插入到奇数集合中,在输出时遍历奇数集合即可。
希望这个解决方案能够满足您的要求!
阅读全文