用C++编写一个程序:给出任意元素值,输出与该值对应的一维数组中所有元素所在的位置
时间: 2023-07-15 20:13:03 浏览: 105
下面是一个实现该功能的 C++ 程序:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> findPositions(int arr[], int n, int x) {
vector<int> positions;
for (int i = 0; i < n; i++) {
if (arr[i] == x) {
positions.push_back(i);
}
}
return positions;
}
int main() {
int arr[] = {1, 2, 3, 4, 2, 5, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 2;
vector<int> positions = findPositions(arr, n, x);
cout << "The positions of " << x << " in the array are: ";
for (int i = 0; i < positions.size(); i++) {
cout << positions[i] << " ";
}
return 0;
}
```
该程序定义了一个名为 `findPositions` 的函数,该函数接受三个参数:一维数组 `arr`、数组长度 `n` 和需要查找的元素值 `x`。该函数使用循环遍历数组中的所有元素,如果元素值等于 `x`,则将该元素在数组中的下标加入到 `positions` 向量中。最后,该函数返回 `positions` 向量。
在主函数中,我们声明一个整型数组 `arr`,并初始化为 `{1, 2, 3, 4, 2, 5, 2}`。我们还声明一个整型变量 `n`,并将其赋值为 `sizeof(arr) / sizeof(arr[0])`,以计算数组的长度。我们要查找的元素值为 `x = 2`。然后,我们调用 `findPositions` 函数,将返回的位置向量保存到 `positions` 中,并打印出每个位置的值。
阅读全文