【C语言练习——调整数组内奇数偶数的顺序】
调整奇数偶数顺序
- 前言
- 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语言练习——调整数组内奇数偶数的顺序】相关推荐
- C语言:调整数组顺序使其奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 这道题目的思路和快速排序很相似,不同点在于交换时不用考虑奇数/偶数序列内部的 ...
- c语言 数组比较不等往下累加,用C语言确定两个数组内的元素排列顺序不同,但是元素相同,代码有bug找不出?...
我觉得稍微麻烦一点的就是允许数组内有重复,我想了两个办法,一种是排序好再挨个比较.另外一个我写了出了,但是跑不正确,怎么弄k都等于10,代码如下,请看出bug的大神指点: int thr_bg(int ...
- 求数组中奇数偶数的个数
public static void main(String[] args) {// TODO Auto-generated method stubint a[]={1,2,3,4,5,6,7,8,9 ...
- 利用C语言 计算一个数组内的平均值
#include<stdio.h> #define N 5 int main() { int a[N]; int i,s=0; printf("input %d numbers: ...
- c语言智力题 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手 使用指针打印数组内容 调整奇数偶数顺序 运动员猜名次
[题目名称] 下面代码的结果是:a #include <stdio.h> int i; int main() {i--; //sizeof'的返回值是无符号整型if (i > siz ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
- 牛客题霸 [ 调整数组顺序使奇数位于偶数前面] C++题解/答案
牛客题霸 [ 调整数组顺序使奇数位于偶数前面] C++题解/答案 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保 ...
- 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面
题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...
最新文章
- 自动批量修改linux用户密码
- c++-内存管理-G2.9
- python数据框循环生成_python - 如何在 Pandas 的for循环迭代中创建多个数据框?
- 历时 4 年,阿里云推出金融核心系统转型实践书
- Markdown Pad2--公式编辑功能搭建
- HBase优化案例分析:Facebook Messages系统问题与解决方案
- 防止HALCON刷新图像窗口控件闪烁
- 十次方社交系统开发项目 源码 视频 文档 工具 合集百度云下载地址
- 产品读书《产品经理的第一本书》
- SourceForge下载慢的解决方案
- 太极图正确画法_八卦太极图的正确画法
- docker批量导出导入本地镜像
- 蓝牙4.0 For IOS
- OSChina 周一乱弹 —— 无双什么都好,但不是芙妹
- 电子计算机里CE,电子计算机上的ce表示什么意思
- TSMC HPC工艺介绍
- 一个简单的房贷计算器设计
- php读取excel并导入数据,PHPExcel读取excel并导入数据库
- 超简单地输出所有水仙花数(Java实现)
- Kitty猫基因编码