当前位置: 首页 > article >正文

C语言第四十四弹---调整奇偶数顺序

使用C语言实现调整奇偶数顺序

思路:通过循环分别找到奇数和偶数,并实现位置交换,需要进行多次交换,循环外层需要添加一个循环。

代码如下

#include <stdio.h>

void Swap_Parity(int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;
	while (left < right)
	{
		//寻找偶数
		while (left < right)
		{
			if (arr[left] % 2 == 0)
			{
				break;//找到第一个偶数 停止该循环
			}
			else
			{
				left++;//未找到继续寻找
			}
		}
		//寻找奇数
		while (left < right)
		{
			if (arr[right] % 2 == 1)
			{
				break;//找到第一个奇数 停止该循环
			}
			else
			{
				right--;//未找到继续寻找
			}
		}
		//交换
		if (left < right)
		{
			int tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
		}
	}
}

int main()
{
	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);

	Swap_Parity(arr, sz);

	for (int i = 0; i < sz; i++)//打印
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

注意每次循环条件判断都必须控制left < right 防止越界和重复交换


http://www.kler.cn/a/162137.html

相关文章:

  • JavaWeb后端开发知识储备1
  • StructuredStreaming (一)
  • 【计算机网络】UDP网络程序
  • C++编程:利用环形缓冲区优化 TCP 发送流程,避免 Short Write 问题
  • 【数据结构】交换排序——冒泡排序 和 快速排序
  • 大数据开发面试宝典
  • 广州数字孪生赋能工业制造,加速推进制造业数字化转型
  • Spark---Spark on Hive
  • 利用proteus实现串口助手和arduino Mega 2560的串口通信
  • Linux 常用命令汇总
  • Java网络编程 *TCP与UDP协议*
  • 使用Caliper对Fabric地basic链码进行性能测试
  • 【私藏】国内最全的电商API数据接口分享各种业务场景调用API代理的API接口教程
  • 查看Linux的Ubuntu的版本
  • pytorch 模型量化quantization
  • JAVA后端自学技能实操合集
  • Qt之基于QCustomPlot绘制直方图(Histogram),叠加正态分布曲线
  • vmware安装centos7总结
  • VSCODE 运行C程序缓慢解决方法之一
  • Ubuntu22.04安装Mariadb
  • C语言printf的输出格式大全及颜色字体打印
  • 微信小程序中block和View组件的使用区别
  • AI发展下服务器的选择非常重要
  • mysql 链接超时的几个参数详解
  • 嵌入式总线技术学习(文章链接汇总)
  • C语言——指针(五)