调整奇数偶数顺序
1.题目
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
2.题目分析
这道题首先用到的方法是冒泡排序的思想,首先通过冒泡排序筛选出不能被2整除的数就是奇数,然后再将这些数和偶数交换位置进行排序就符合要求文章来源:https://www.toymoban.com/news/detail-641867.html
3.函数的实现
//调整数组使奇数全部都位于偶数前面的函数
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.打印数组的函数实现
//打印数组函数
void print(int* arr, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", *(arr++));
}
}
5.完整代码实现
#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.运行结果展示
文章来源地址https://www.toymoban.com/news/detail-641867.html
到了这里,关于【调整奇数偶数顺序】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!