题目描述:
实现一个函数,使输入的整数数组,用函数调整该数组中数字的顺序,使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。
解题思路:
用两个下标控制,i=0 从左边开始找到第一个偶数,j=N-1 从右边开始找到第一个奇数,将二者内容直接交换,直到 i = j 结束。
完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
#define N 10
int main()
{
int i = 0;
int j = N - 1;
int a[N] = { 0 };
printf("请输入%d个数:", N);
for (int x = 0; x < N; x++)
{
scanf("%d",&a[x]);
}
while (i< j)
{
//从左边开始找到第一个偶数
while (a[i] % 2 != 0)
{
i++;
}
//从右边开始找到第一个奇数
while(a[j] % 2 == 0)
{
j--;
}
//交换
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
for (int y = 0; y < N; y++)
{
printf("%d ", a[y]);
}
printf("\n");
system("pause");
return 0;
}