调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序
使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
方法一:
从两边向中间转换位置
#include<stdio.h> #include<stdlib.h> #include<assert.h> 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<p2) { if ((p1<p2)&&(*p2 % 2==0)) { p2--; } if ((p1 < p2) && (*p1 % 2 != 0)) { p1++; } if (p1 < p2) { int tmp = 0; tmp = *p1; *p1 = *p2; *p2 = tmp; } } } int main() { int arr[10] = { 2, 4, 6, 8, 0, 1, 3, 5, 7, 9 }; int size = sizeof(arr) / sizeof(arr[0]); int i = 0; even_old(arr,size); for (i = 0; i < size;i++) printf("%d ", arr[i]); system("pause"); return 0; }
本文出自 “无以伦比的暖阳” 博客,请务必保留此出处http://10797127.blog.51cto.com/10787127/1719763
原文:http://10797127.blog.51cto.com/10787127/1719763