用C语言编程使得.任意输入一整形数组,编程实现将奇数放到数组的前面,偶数放到数组的后面。
时间: 2023-06-02 18:05:57 浏览: 56
对于您的问题,我可以回答。可以使用C语言的双指针算法来实现将奇数放到数组的前面,偶数放到数组的后面。代码示例如下:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
void oddEvenSort(int nums[], int numsSize) {
int* left = nums;
int* right = nums + numsSize - 1;
while (left < right) {
while ((*left) % 2 == 1 && left < right) {
left++;
}
while ((*right) % 2 == 0 && left < right) {
right--;
}
swap(left, right);
}
}
int main() {
int nums[] = {1, 4, 2, 3, 5, 6};
int numsSize = 6;
oddEvenSort(nums, numsSize);
for (int i = 0; i < numsSize; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
上面的代码中,swap函数用于交换两个数的值,oddEvenSort函数中,left指针从数组前面往后面移动,找到第一个偶数。right指针从数组后面往前面移动,找到第一个奇数。然后交换两个数的值。重复这个过程直到left >= right,也就是奇数和偶数都被放到了对应的位置为止。在main函数中定义了一个测试数组,可以根据具体情况修改。