c语言调整输入数组AO.n),将其分为两部分,左边所有元素为奇数,右边所有元素为偶数
时间: 2024-09-22 08:07:32 浏览: 60
C语言教程之数组讲解.ppt
5星 · 资源好评率100%
在C语言中,你可以使用两个指针方法来调整输入数组,使其满足奇数在前、偶数在后的顺序。这种方法通常称为双指针技术。这里是一个基本的步骤:
1. 初始化两个指针,一个`left`指向数组开始(`arr[0]`),另一个`right`指向数组结束(`arr[n - 1]`)。
2. 当`left`小于等于`right`时,循环执行以下操作:
a. 检查当前`left`指向的元素是否为偶数。如果是偶数,则将它与`right`指向的奇数交换,并同时向右移动`left`指针(加1)。
b. 否则,如果`left`指向的是奇数,保持不变,然后将`right`指针向左移动一步(减1)。
3. 循环结束后,数组就会按照奇数在前、偶数在后的顺序排列。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
void rearrangeArray(int arr[], int n) {
int left = 0;
int right = n - 1;
while (left <= right) {
// 如果左指针处是偶数
if (arr[left] % 2 == 0) {
// 交换并移动左指针
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
right--;
} else {
// 左指针处是奇数,不动,移动右指针
left++;
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
rearrangeArray(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文