C++编写一个程序实现查找重复数字的功能。数组a中存放了10个随机整数(1-10),要求用指针p和q分别指向需要比较的单元。
时间: 2024-12-16 18:29:38 浏览: 18
在C++中,你可以通过遍历数组并利用指针来查找重复的数字。这里是一个简单的示例程序:
```cpp
#include <iostream>
#include <unordered_set>
// 定义一个函数,接受两个指针作为参数
void findDuplicates(int arr[], int size, int* p, int* q) {
std::unordered_set<int> uniqueElements;
// 使用指针遍历数组
for (int i = *p; i != *q; ++i) {
if (uniqueElements.find(arr[i]) == uniqueElements.end()) {
uniqueElements.insert(arr[i]);
} else {
std::cout << "Duplicate found at index: " << i << " Value: " << arr[i] << std::endl;
}
}
}
int main() {
const int SIZE = 10;
int a[SIZE]; // 存放10个随机整数
// 假设这里我们手动初始化数组,实际应用中可以使用rand()生成随机数
for (int i = 0; i < SIZE; ++i) {
a[i] = rand() % 10 + 1;
}
int p = 0, q = SIZE - 1; // 指向数组的起始和结束位置
findDuplicates(a, SIZE, &p, &q); // 调用函数查找重复
return 0;
}
```
在这个程序中,`findDuplicates`函数会检查数组中的每个元素是否存在于`uniqueElements`集合中。如果存在,则说明找到了重复的数字,并输出其位置。注意,这个例子假设数组长度已知并且指针合法,实际使用时需要添加适当的错误处理。
阅读全文