【调整奇数偶数顺序】

调整奇数偶数顺序

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.运行结果展示

相关推荐
子豪-中国机器人4 小时前
2月17日c语言框架
c语言·开发语言
张胤尘4 小时前
C/C++ | 每日一练 (2)
c语言·c++·面试
醉城夜风~4 小时前
[C语言]指针进阶压轴题
c语言
weixin_535854225 小时前
oppo,汤臣倍健,康冠科技,高途教育25届春招内推
c语言·前端·嵌入式硬件·硬件工程·求职招聘
宋康6 小时前
C/C++ 指针避坑20条
c语言·开发语言·c++
仟濹7 小时前
【二分搜索 C/C++】洛谷 P1873 EKO / 砍树
c语言·c++·算法
YH_DevJourney7 小时前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++
Igallta_8136228 小时前
【小游戏】C++控制台版本俄罗斯轮盘赌
c语言·开发语言·c++·windows·游戏·游戏程序
楼台的春风9 小时前
PWM(脉宽调制)技术详解:从基础到应用实践示例
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式
WiKiLeaks_successor9 小时前
C从入门到放弃篇1
c语言·开发语言