输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#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;
}