调整奇数偶数顺序

  • 前言
  • 1、不改变元素顺序
  • 2、改变元素的顺序
  • 总结

前言

调整数组里的奇数偶数的顺序,使奇数全部都位于偶数前面。


1、不改变元素顺序

  • 首先将奇数都调整到数组的前面
  • 然后将偶数都调整到数组的后面
  • 所有的奇数部分的前后顺序不变
  • 所有的偶数部分的前后顺序不变

int main()
{int a[] = { 1,2,8,9,4,10,3,5,6,0,7 };int left = 0;int sz = sizeof(a) / sizeof(a[0]);int right = sz-1;int tmp = 0;//临时中间变量int num = sz;//判断次数while (num){if (a[left] % 2 == 0)//此时a[left]是偶数,则进行移位{//ou = i;//下一次判断的起始位置tmp = a[left];for (int j = left; j <= right - 1; j++){a[j] = a[j + 1];}a[right] = tmp; //偶数放在数组末尾}else{left++;//a[left]不是偶数,则判断下一个a[left+1]}num--;}for (int  i = 0; i < sz; i++){printf("%d ", a[i]);}return 0;
}

结果见下图:


10

2、改变元素的顺序

  • 首先将奇数都调整到数组的前面
  • 然后将偶数都调整到数组的后面
  • 所有的奇数部分的前后顺序有改变
  • 所有的偶数部分的前后顺序有改变

void change(int a[], int sz)
{int left = 0;int right = sz - 1;while (left<right){while ((left<right) && (a[left] % 2 == 1)){left++;}while ((left < right) && (a[right] % 2 == 0)){right--;}if (left < right){int tmp = a[left];a[left] = a[right];a[right] = tmp;}}
}
void print(int a[], int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}
}
int main()
{int a[] = { 1,2,8,9,4,10,3,5,6,0,7 };int sz = sizeof(a) / sizeof(a[0]);change(a, sz);print(a, sz);return 0;
}

结果见下图:


总结

还是需要多练习,不管自己写的代码是罗嗦了,还是太烂了,也必须要写完,实现题目要求,这是最重要的一步。

第二步就是多看看别人写的代码,学习别人的思路,记录下来写成博客,方便自己复习。

【C语言练习——调整数组内奇数偶数的顺序】相关推荐

  1. C语言:调整数组顺序使其奇数位于偶数前面

    题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 这道题目的思路和快速排序很相似,不同点在于交换时不用考虑奇数/偶数序列内部的 ...

  2. c语言 数组比较不等往下累加,用C语言确定两个数组内的元素排列顺序不同,但是元素相同,代码有bug找不出?...

    我觉得稍微麻烦一点的就是允许数组内有重复,我想了两个办法,一种是排序好再挨个比较.另外一个我写了出了,但是跑不正确,怎么弄k都等于10,代码如下,请看出bug的大神指点: int thr_bg(int ...

  3. 求数组中奇数偶数的个数

    public static void main(String[] args) {// TODO Auto-generated method stubint a[]={1,2,3,4,5,6,7,8,9 ...

  4. 利用C语言 计算一个数组内的平均值

    #include<stdio.h> #define N 5 int main() { int a[N]; int i,s=0; printf("input %d numbers: ...

  5. c语言智力题 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手 使用指针打印数组内容 调整奇数偶数顺序 运动员猜名次

    [题目名称] 下面代码的结果是:a #include <stdio.h> int i; int main() {i--; //sizeof'的返回值是无符号整型if (i > siz ...

  6. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

  7. 牛客题霸 [ 调整数组顺序使奇数位于偶数前面] C++题解/答案

    牛客题霸 [ 调整数组顺序使奇数位于偶数前面] C++题解/答案 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保 ...

  8. 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面

    题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...

  9. java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面

    LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...

最新文章

  1. 自动批量修改linux用户密码
  2. c++-内存管理-G2.9
  3. python数据框循环生成_python - 如何在 Pandas 的for循环迭代中创建多个数据框?
  4. 历时 4 年,阿里云推出金融核心系统转型实践书
  5. Markdown Pad2--公式编辑功能搭建
  6. HBase优化案例分析:Facebook Messages系统问题与解决方案
  7. 防止HALCON刷新图像窗口控件闪烁
  8. 十次方社交系统开发项目 源码 视频 文档 工具 合集百度云下载地址
  9. 产品读书《产品经理的第一本书》
  10. SourceForge下载慢的解决方案
  11. 太极图正确画法_八卦太极图的正确画法
  12. docker批量导出导入本地镜像
  13. 蓝牙4.0 For IOS
  14. OSChina 周一乱弹 —— 无双什么都好,但不是芙妹
  15. 电子计算机里CE,电子计算机上的ce表示什么意思
  16. TSMC HPC工艺介绍
  17. 一个简单的房贷计算器设计
  18. php读取excel并导入数据,PHPExcel读取excel并导入数据库
  19. 超简单地输出所有水仙花数(Java实现)
  20. Kitty猫基因编码

热门文章

  1. 秋季养肺润燥的食物有哪些?
  2. 上下文无关文法的作用
  3. 用数组打印平行四边形
  4. 素数分解几点素数java_Java素数分解程序
  5. python包裹 函数_关于Python中包裹传参和解包裹的理解
  6. 硬盘分区与配额管理【Ubuntu-shell】
  7. 代码随想录打卡16天
  8. 小米平板 粉色版 16GB,不可以听书
  9. Acwing 1077.皇宫看守
  10. 理解矩阵一、二, 三(转自孟岩blog)