C++实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个动态数组
时间: 2024-03-20 12:44:14 浏览: 70
可以使用如下代码实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个动态数组:
```c++
#include <iostream>
using namespace std;
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]);
int* odd = new int[n/2+1]; // 奇数位置的元素
int* even = new int[n/2+1]; // 偶数位置的元素
int oddCount = 0;
int evenCount = 0;
for(int i = 0; i < n; i++)
{
if(i%2 == 0) // 偶数位置
{
even[evenCount++] = arr[i];
}
else // 奇数位置
{
odd[oddCount++] = arr[i];
}
}
// 输出偶数位置的元素
cout << "Even position elements: ";
for(int i = 0; i < evenCount; i++)
{
cout << even[i] << " ";
}
cout << endl;
// 输出奇数位置的元素
cout << "Odd position elements: ";
for(int i = 0; i < oddCount; i++)
{
cout << odd[i] << " ";
}
cout << endl;
// 释放内存
delete[] odd;
delete[] even;
return 0;
}
```
上述代码中,我们首先动态分配了两个数组`odd`和`even`,然后使用循环遍历原始数组,并将元素添加到相应的数组中。最后,我们输出这两个数组中的元素即可。需要注意的是,使用动态数组需要在使用完之后手动释放内存,否则可能会导致内存泄漏。
阅读全文