调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序
使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
方法一:
从两边向中间转换位置
指针
#include#include #include void even_old(int *arr1,int size){ assert(arr1); int *p1 = arr1; int *p2 = arr1+size-1; if (size == 0||p1==NULL) return 0; while (p1
方法二:
数组
#include#include void swap(int *pa, int *pb){ int tmp=*pa; *pa = *pb; *pb = tmp;}int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; int size = sizeof(arr) / sizeof(arr[0]); int start = 0; int end = size - 1; int i = 0; while (start < end) { while ((start < end) && (arr[start]) % 2 != 0) { start++; } while ((start < end) && (arr[end]) % 2 == 0) { end --; } swap(arr + start, arr + end); start++; end--; } for (i = 0; i < size; i++) printf("%d ", arr[i]); system("pause"); return 0;}