c语言奇数放左边偶数放右边
时间: 2024-12-04 08:07:24 浏览: 13
在C语言中,将数组中的奇数放在左边、偶数放在右边的操作通常涉及到两个步骤:首先遍历数组,然后根据元素的奇偶性进行交换。下面是一个简单的示例,假设我们有一个整数数组:
```c
#include <stdio.h>
void separate_odd_even(int arr[], int size) {
int left = 0; // 奇数的位置从左开始
int right = size - 1; // 偶数的位置从右开始
while (left < right) { // 当左右指针未相遇时
if (arr[left] % 2 == 0) { // 如果左指针处是偶数
// 交换左边偶数和右边第一个奇数
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
right--;
} else if (arr[right] % 2 != 0) { // 如果右指针处是奇数
left++; // 左指针向右移动到下一个偶数位置
} else {
right--; // 右指针向左移动到下一个奇数位置
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
separate_odd_even(arr, size);
printf("\nArray with odd numbers on the left and even numbers on the right: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行这个程序会得到一个数组,其中奇数在前,偶数在后。
阅读全文