编写一个程序实现查找重复数字的功能。数组a中存放了10个随机整数(1-10),要求用指针p和q分别指向需要比较的单元。
时间: 2024-12-20 09:20:30 浏览: 13
为了编写一个查找重复数字的程序,你可以使用两个指针`p`和`q`,从数组`a`的开始位置逐个比较元素。如果找到相同的元素,就移动指针`q`继续查找下一个重复数字;如果没有找到重复,就将指针`q`向后移动一位。以下是使用C++语言的一个简单示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void findDuplicates(vector<int>& a) {
vector<int> duplicates; // 存储重复数字
int p = 0; // 指向第一个元素
for (int q = 0; q < a.size(); q++) { // 比较指针
if (a[p] == a[q]) { // 如果找到重复
if (duplicates.find(a[p]) == duplicates.end()) { // 检查是否已存在
duplicates.push_back(a[p]); // 存入重复数字
}
} else {
p++; // 否则移动p指针
}
}
// 打印重复数字
cout << "Duplicate numbers found: ";
for (const auto& num : duplicates) {
cout << num << " ";
}
cout << endl;
}
int main() {
vector<int> a = {5, 2, 7, 9, 4, 2, 8, 6, 3, 2}; // 随机生成的10个整数(1-10)
findDuplicates(a); // 调用函数查找重复数字
return 0;
}
```
在这个程序中,`findDuplicates`函数接收一个`vector<int>`类型的数组`a`,通过两个指针`p`和`q`来检测重复的数字。一旦发现重复数字,就将其添加到`duplicates`列表中。最后在`main`函数中,我们用随机生成的10个整数填充数组并调用该函数。
阅读全文