调整数组使奇数全部都位于偶数前面

来源:互联网 发布:查淘宝号的网址 编辑:程序博客网 时间:2024/05/17 02:32
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>void my_change(int *p, int len){int *q = p + len - 1;int temp;assert(p != NULL);while (p < q){if((*p & 1) == 1) {p++;}if  ((*q & 1) == 0){q--;}if (p < q){temp = *p;*p = *q;*q = temp;}}return;}int main(){int i = 0;int arr[5];int len = sizeof(arr) / sizeof(arr[0]);for (i = 0; i < len; i++)scanf("%3d", &arr[i]);for (i = 0; i < len; i++)printf("%3d", arr[i]);printf("\n");my_change(arr, len);for (i = 0; i < len; i++)printf("%3d", arr[i]);printf("\n");system("pause");return 0;}