首页 > 其他分享 >调整奇数全部位于偶数前面(c语言)

调整奇数全部位于偶数前面(c语言)

时间:2024-07-27 18:25:08浏览次数:13  
标签:sz arr right 语言 奇数 int 偶数 left

1.方法一:第一步先建一个arr,判断arr中的奇数(arr[i] % 2 != 0)和偶数(arr[i] % 2 == 0)分别打印,先打印奇数,后打印偶数。

//调整奇数全部位于偶数前面
//方法一
void test(int* arr,int sz)
{
	int i = 0;
	for ( i = 0; i < sz-1; i++)
	{
		if (arr[i] % 2 != 0)
		{
			printf("%d ", arr[i]);
		}

	}
	for (i = 0; i < sz - 1; i++)
	{
		if (arr[i] % 2 == 0)
		{
			printf("%d ", arr[i]);
		}

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

2.方法二:(经过二分法,先判断是否位奇数,若是奇数left++,若不为奇数,判断arr[right]是否为奇数,若为偶数,则left于right交换,若为奇数,则right--,在进行判断)

int main()
{
	int arr[] = { 1,4,6,5,3,2,8,5,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int left = 0;
	int right = sz - 1;
	while (left < right)
	{
		//是否为奇数
		if (arr[left] % 2 != 0&&left<right)
		{
			left++;
		}
		//当为偶数时
		if (arr[left] % 2 == 0&&left<right)
		{
			while (left<right)
			{
				if (arr[right] % 2 != 0)
				{
					int c = arr[right];
					arr[right] = arr[left];
					arr[left] = c;
					left++;
					right--;
					break;
				}
				else
				{
					right--;
				}
			}
		}
	}
	//打印
	for (int i = 0; i < sz ; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

标签:sz,arr,right,语言,奇数,int,偶数,left
From: https://blog.csdn.net/scy2429828663/article/details/140642042

相关文章

  • 简单的扫雷——基于C语言的控制台小游戏
    前言:  “将大象装进冰箱要几步?--打开冰箱,把大象放进去,关上冰箱。”  同样的,该扫雷游戏的编写过程也只需三步:逻辑梳理-代码实现-运行调试。本文将使用C语言来一步步剖析并完成扫雷这一案例。一.扫雷的游戏逻辑  该扫雷的游戏逻辑为:  1.生成棋盘,并布置数个......
  • 【学习笔记】Matlab和python双语言的学习(TOPSIS法)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、TOPSIS法1.模型原理2.基本步骤(1)原始矩阵正向化(2)正向矩阵标准化(3)计算得分并归一化二、代码实现----Matlab1.主程序2.正向化处理函数3.极小型正向化函数4.中间型正向化函数5.区间型正向化......
  • Linux捣鼓记录:debian配置语言环境
    1.安装区域设置sudoaptupdatesudoaptinstalllocales2.配置语言环境sudodpkg-reconfigurelocales按空格多选,选中en_US.UTF-8和zh_CN.UTF-8这里多选择了英文,可以避免有些软件比如steamcmd报警告:WARNING:setlocale('en_US.UTF-8')failed,usinglocale:'C'.......
  • 《重生到现代之从零开始的C语言生活》—— 分支和循环
    前言:因为C语言是结构化的程序设计语言,这里面的结构指的是顺序结构,选择结构,循环结构,在日常生活中,所见的事都能拆分成这几个结构或者这三种结构的组合。if语句ifif在英文中有如果的意思,在C语言中意思相似if(表达式)要执行的语句如果表达式成立(为真),则执行语句,如果不......
  • C 语言基础
    C语言1.入门优点:功能强大操作系统、嵌入式、动态库、服务器、应用程序、外挂、其他语言等执行效率高C语言描述问题比汇编语言简练,而代码质量与汇编语言相当可移植性好一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行缺点:面......
  • C语言day04(输入输出、垃圾字符、分支语句)
    C语言day04【1】按照字符输入输出1》输出:putchar定义格式:intputchar(intc);功能:按照字符输出,向终端输出一个字符参数:要输出的字符的ascii值、字符返回值:输出字符的ASCII值2》输入:getchar定义格式:intgetchar(void)功能:按照字符输入,从终端输入一个字符参数:无......
  • C语言day05(循环语句)
    C语言day05【1】循环语句1》for循环语法:定义变量for(表达式1;表达式2;表达式3){//循环执行的语句块}表达式1:赋初始值表达式2:控制循环执行的语句(进入循环的条件或终止循环的条件)表达式3:递增或递减执行顺序:执行顺序:定义变量,执行表达式1,判断表达式2是否成立......
  • 大语言模型的Scaling Law:如何随着模型大小、训练数据和计算资源的增加而扩展
    人工智能的世界正在经历一场革命,大型语言模型正处于这场革命的前沿,它们似乎每天都在变得更加强大。从BERT到GPT-3再到PaLM,这些AI巨头正在推动自然语言处理可能性的边界。但你有没有想过是什么推动了它们能力的飞速提升? 在这篇文章中,我们将介绍使这些模型运作的秘密武器——一......
  • 我写了一个代码来分隔偶数和奇数,但我遇到了这个错误?
    whileTrue:num=input("plstypethenumber:")#checkifit'sintorstringnumber=int(num)exceptValueError:print("errortryagain!!")continue#ifitwaswronggoback#ch......
  • Mojo AI编程语言(十二)高级特性:深入理解Mojo
    目录1.Mojo简介2.高级数据类型2.1数组与矩阵2.2多维数组2.3字符串操作3.并行计算3.1线程与协程3.2并行算法4.分布式系统4.1RPC与消息传递4.2分布式数据处理5.高级语言特性5.1泛型编程5.2函数式编程5.3元编程6.错误处理与调试6.1错误处理6.2......