C++中数组中找到奇数到偶数变化的位置
时间: 2024-04-30 18:20:28 浏览: 13
可以使用以下 C 代码实现:
```c
#include <stdio.h>
int main() {
int arr[] = {2, 4, 6, 7, 8, 9, 10};
int len = sizeof(arr) / sizeof(arr[0]);
int pos = -1;
for (int i = 0; i < len - 1; i++) {
if (arr[i] % 2 == 0 && arr[i+1] % 2 == 1) {
pos = i+1;
break;
}
}
if (pos == -1) {
printf("No change from even to odd found.\n");
} else {
printf("Change from even to odd found at position %d.\n", pos);
}
return 0;
}
```
这段代码首先定义了一个整数数组 `arr`,然后计算出数组长度,并使用一个 `for` 循环遍历数组元素。在循环中,通过判断相邻两个元素的奇偶性来找到第一个从偶数到奇数的变化位置。如果找到了变化位置,则输出其位置,否则输出未找到提示。
相关问题
C++实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个数组
可以使用如下代码实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个数组:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]);
vector<int> odd;
vector<int> even;
for(int i = 0; i < n; i++)
{
if(i%2 == 0) // 偶数位置
{
even.push_back(arr[i]);
}
else // 奇数位置
{
odd.push_back(arr[i]);
}
}
// 输出偶数位置的元素
cout << "Even position elements: ";
for(int i = 0; i < even.size(); i++)
{
cout << even[i] << " ";
}
cout << endl;
// 输出奇数位置的元素
cout << "Odd position elements: ";
for(int i = 0; i < odd.size(); i++)
{
cout << odd[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们使用了两个`vector`来存储奇数位置的元素和偶数位置的元素,然后使用循环遍历原始数组,并将元素添加到相应的`vector`中。最后,我们输出这两个`vector`中的元素即可。
C++实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个动态数组
可以使用如下代码实现将一个数组的奇数位置的元素与偶数位置的元素分开为两个动态数组:
```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`,然后使用循环遍历原始数组,并将元素添加到相应的数组中。最后,我们输出这两个数组中的元素即可。需要注意的是,使用动态数组需要在使用完之后手动释放内存,否则可能会导致内存泄漏。