给定一个整数数组, 请按从大到小的顺序输出该数组中元素,相同的元素只输出一次。 输入 第一行为一个正整数N(1 < N≤10000),随后第二行为N个整数,整数间以空格分隔。 输出 按从大到小的顺序输出满足条件的元素。给出c++代码
时间: 2023-12-14 20:05:48 浏览: 43
以下是一份C++代码实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end(), greater<int>());
int prev = nums[0];
cout << prev << " ";
for (int i = 1; i < n; i++) {
if (nums[i] != prev) {
cout << nums[i] << " ";
prev = nums[i];
}
}
return 0;
}
```
首先,读取输入的N和整数数组。然后,使用STL中的sort函数按从大到小的顺序对数组进行排序。接下来,使用一个变量prev来记录前一个输出的元素,以便在处理相同元素时只输出一次。最后,遍历数组并输出满足条件的元素。
相关问题
给定一个整数数组,请按从大到小的顺序输出该数组中元素,相同的元素只输出一次。
好的,这是一个简单的排序问题,可以使用快速排序算法实现。以下是具体的步骤:
1. 定义一个函数,输入参数为整数数组。
2. 对数组进行快速排序,排序的结果是从小到大排列的。
3. 从数组的最后一个元素开始遍历,依次输出每个元素,如果遇到相同的元素则跳过。
以下是使用 Python 代码实现的示例:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] > pivot:
left.append(arr[i])
elif arr[i] < pivot:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
def print_sorted_array(arr):
sorted_arr = quick_sort(arr)
result = []
for i in range(len(sorted_arr)-1, -1, -1):
if i == len(sorted_arr)-1 or sorted_arr[i] != sorted_arr[i+1]:
result.append(sorted_arr[i])
print(result)
arr = [5, 3, 2, 5, 6, 8, 7, 2, 3, 1]
print_sorted_array(arr) # 输出 [8, 7, 6, 5, 3, 2, 1]
```
希望能够帮到你!
给定一个整数数组, 请按从大到小的顺序输出该数组中元素,相同的元素只输出一-次。 输入 第一行为一个正整数N(1 < N≤10000),随后第二行为N个整数,整数间以空格分隔。 输出 按从大到小的顺序输出满足条件的元素。给出c++代码
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 10010;
int a[MAXN], b[MAXN];
bool cmp(int x, int y)
{
return x > y;
}
int main()
{
int n, cnt = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a, a + n, cmp); // 从大到小排序
b[cnt++] = a[0]; // 先将第一个数存入新数组中
for (int i = 1; i < n; i++)
{
if (a[i] != a[i - 1]) // 如果当前数与前一个数不同
{
b[cnt++] = a[i]; // 将该数存入新数组中
}
}
for (int i = 0; i < cnt; i++)
{
cout << b[i] << " "; // 输出新数组中的元素
}
return 0;
}
```
首先读入数组元素,使用 sort 函数将数组从大到小排序,然后利用另一个数组 b 存储不重复的元素,最后输出 b 数组即可。