【调整奇数偶数顺序】

调整奇数偶数顺序

1.题目

输入一个整数数组,实现一个函数,

来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,

所有偶数位于数组的后半部分。

2.题目分析

这道题首先用到的方法是冒泡排序的思想,首先通过冒泡排序筛选出不能被2整除的数就是奇数,然后再将这些数和偶数交换位置进行排序就符合要求

3.函数的实现

c 复制代码
//调整数组使奇数全部都位于偶数前面的函数
void swap(int* arr, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		int j = 0;
		if (*(arr + i) % 2 == 0)//判断是否是偶数
		{
			for (j = i + 1; j < sz; j++)
			{
				if (*(arr + j) % 2 != 0)//判断是否为奇数
				{
				//和偶数交换位置
					int temp = *(arr + j);
					*(arr + j) = *(arr + j - 1);
					*(arr + j - 1) = temp;
				}
			}
		}
		
	}
}

4.打印数组的函数实现

c 复制代码
//打印数组函数
void print(int* arr, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(arr++));
	}
}

5.完整代码实现

c 复制代码
#include<stdio.h>
//调整数组使奇数全部都位于偶数前面的函数
void swap(int* arr, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		int j = 0;
		if (*(arr + i) % 2 == 0)//判断是否是偶数
		{
			for (j = i + 1; j < sz; j++)
			{
				if (*(arr + j) % 2 != 0)//判断是否为奇数
				{
				//和偶数交换位置
					int temp = *(arr + j);
					*(arr + j) = *(arr + j - 1);
					*(arr + j - 1) = temp;
				}
			}
		}
		
	}
}
//打印数组函数
void print(int* arr, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(arr++));
	}
}
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	swap(arr, sz);
	print(arr, sz);

	return 0;
}

6.运行结果展示

相关推荐
openKylin7 分钟前
与全球技术演进同频,openKylin 3.0从C迈向Rust
c语言·开发语言·rust·开源·开放原子·openkylin
迷茫、Peanut36 分钟前
C语言sizeof和strlen
c语言
Bug退散师5 小时前
多路IO复用[select版TCP服务器与poll版TCP服务器]与常用网络编程函数详解
linux·服务器·c语言·网络·驱动开发·tcp/ip
天空'之城5 小时前
C 语言工业级通用组件手写 03:双向链表
c语言·嵌入式开发·双向链表
FREEDOM_X5 小时前
嵌入式——定时器工作原理
linux·c语言·单片机·嵌入式硬件·ubuntu
2401_827501285 小时前
51单片机(四)DS18B20 数字温度传感器
c语言·51单片机
不会c+8 小时前
C语言:入门到精通(408考研版)系列七 派生的数据类型
c语言·开发语言
躺不平的理查德8 小时前
SQLite C API 备忘录
c语言·数据库·sqlite
程序猿编码9 小时前
没有AI框架,没有GPU,一个C语言文件跑通大模型
c语言·开发语言·人工智能·深度学习·ai·大模型
CHANG_THE_WORLD9 小时前
Linux C 多线程 TCP 并发服务器:从 `accept()` 到资源管理深度剖析
linux·服务器·c语言