C实现数组奇数在前偶数在后排序

2023-12-28 21:41:34

一、运行结果;

二、源码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

//实现调整函数move_odd_even函数;
void move_odd_even(int arr[], int sz)
{
	//初始化变量值;
	int left = 0;
	int right = sz - 1;
	//循环判断和交换值;
	while (left < right)
	{
		//left判断偶数停下来;
		while ((left < right) && (arr[left] % 2 == 1))
		{
			//判断完成下一个;
			left++;
		}
		//right判断是奇数停下来;
		while ((left < right) && (arr[right] % 2 == 0))
		{
			//判断完成下一个;
			right--;
		}
		//交换奇偶数位置;
		if (left < right)
		{
			//引入第三方变量实现交换;
			int tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
			//进一步结束循环;
			left++;
			right--;
		}
	}
}

int main()
{
	//初始化变量值;
	int i = 0;
	//初始化数组;
	int arr[10] = { 0 };
	//求数组长度;
	int sz = sizeof(arr) / sizeof(arr[0]);
	//1.利用循环实现用户输入数组值;
	for (i = 0; i < 10; i++)
	{
		//获取用户输入值;
		scanf("%d", &arr[i]);
	}
	//2.处理数据;
	//调用函数move_odd_even
	move_odd_even(arr, sz);
	//3.循环输出结果;
	for (i = 0; i < 10; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}

文章来源:https://blog.csdn.net/m0_67184754/article/details/135278454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。