调整数组中的数 使全部奇数都位于偶数前面(完整代码)

题目描述:

实现一个函数,使输入的整数数组,用函数调整该数组中数字的顺序,使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。

解题思路:

用两个下标控制,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;
}

猜你喜欢

转载自blog.csdn.net/ly_6699/article/details/83961375