输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分(其二)
程序代码如下:
#include <stdio.h>
#define N 10
void change(int arr[],int a, int b)
{
int tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
void OldToEven(int arr[], int length)
{
int i = 0;
int j = length - 1;
int tmp = 0;
while (i < j)
{
while ((i < j) && (arr[i] % 2 == 1))
{
i++;
}
while ((i < j) && (arr[j] % 2 == 0))
{
j--;
}
if (i != j)
{
change(arr,i,j);
}
}
}
int main()
{
int arr[N] = {1,2,5,8,0,3,7,6,4,9};
int i = 0;
printf("请输入一组整数:\n");
for (i = 0; i < N; i++)
{
scanf("%d", &arr[i]);
}
OldToEven(arr,N);
for (i = 0; i < N; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
程序运行结果如下: