目录
解题分析:
- .调整数组使奇数全部都位于偶数前面。
- 输入一个整数数组;
- 实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分
- 先定义一个函数,函数的功能就是将数组的奇数全部放在前面,偶数全部放在后面。
- 需要两个指针,一个从左边开始找偶数,一个从右边开始找奇数,
- 找到了就交换,直到所有的元素都被交换完毕。
代码示例:
-
#include<stdio.h> #include<stdlib.h> void Movenum(int *arr,int size){ int i = 0, j = 0; while (1) { for (i = 0; i < size; i++) { if (arr[i] % 2 == 0) { break; } } j = i + 1; for (; j < size; j++) { if (arr[j] % 2 == 1) { break; } } if (j < size) { int *a = &arr[i]; int *b = &arr[j]; int tmp = *a; *a = *b; *b = tmp; } else { break; } } } void print(int arr[], int size){ int i = 0; for (i=0; i < size; i++){ printf("%d ", arr[i]); } } int main(){ int arr[] = { 1, 2, 5, 4, 3, 6,7,8,9 }; int size = sizeof(arr) / sizeof(arr[0]); Movenum(arr,size); print(arr, size); system("pause"); return 0; }