输入的数有两行,第1行为1个正整数,表示所生成的随机数的个数 N。 第2行有 N 个用空格隔开的正整数,为所产生的随机数。用c++将其去重和排序,输出也是两行,第1行为1个正整数M,表示不相同的随机数的个数。 第2行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
时间: 2024-03-23 20:43:02 浏览: 95
以下是用 C++ 实现去重和排序,并输出不相同的随机数个数和排好序的不相同的随机数的代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
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()); // 排序
auto it = unique(nums.begin(), nums.end()); // 去重
nums.resize(distance(nums.begin(), it));
cout << nums.size() << endl; // 输出不相同的随机数个数
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " "; // 输出排好序的不相同的随机数
}
cout << endl;
return 0;
}
```
这段代码与上面的代码类似,只是在最后多输出了不相同的随机数个数。
相关问题
输入有两行,第1行为1个正整数,表示所生成的随机数的个数 N。 第2行有 N 个用空格隔开的正整数,为所产生的随机数。用c++将其去重和排序
以下是用 C++ 实现去重和排序的代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
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()); // 排序
auto it = unique(nums.begin(), nums.end()); // 去重
nums.resize(distance(nums.begin(), it));
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码首先读入了 N 个随机整数,然后使用 `sort()` 函数进行排序,接着使用 `unique()` 函数进行去重,最后输出结果即可。
你误解了我的问题!该题的输入描述为:输入文件包含2行 第1行为1个正整数,表示所生成的随机数的个数N。 第2行有 N 个用空格隔开的整数,为所产生的随机数。
非常抱歉,我误解了你的问题。根据你的输入描述,你想了解如何读取给定的输入文件。以下是一个示例代码,用于读取包含2行内容的输入文件:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::ifstream inputFile("input.txt"); // 假设输入文件名为 input.txt
if (!inputFile) {
std::cerr << "无法打开输入文件" << std::endl;
return 1;
}
int N;
inputFile >> N; // 读取第1行的正整数 N
std::vector<int> randomNumbers(N);
for (int i = 0; i < N; i++) {
inputFile >> randomNumbers[i]; // 读取第2行的 N 个整数
}
// 在这里执行你的操作,使用 randomNumbers 存储的随机数
inputFile.close(); // 关闭文件
return 0;
}
```
请将输入文件命名为 `input.txt` 并确保它与你的 C++ 源代码文件在同一目录下。这样,你就可以使用上面的代码读取输入文件中的数据,并在 `randomNumbers` 向量中存储随机数了。你可以在代码中适当的位置插入其他操作以满足你的需求。
阅读全文