博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开
阅读量:6340 次
发布时间:2019-06-22

本文共 1300 字,大约阅读时间需要 4 分钟。

将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开?

需要调整元素的顺序。先判断数组中的一个元素的奇偶性,如为奇数就往后移。

如何判断一个元素的奇偶性?

[cpp]
  1. //判断元素的奇偶性  
  2. bool isEven(int data)  
  3. {  
  4.     return((data & 1) == 0 ? true : false);  
  5. }  

测试如下:

[cpp]
  1. #include<stdio.h>  
  2.   
  3. //判断元素的奇偶性  
  4. bool isEven(int data)  
  5. {  
  6.     return((data & 1) == 0 ? true : false);  
  7. }  
  8.   
  9. int main()  
  10. {  
  11.     int i = 3;  
  12.     if(isEven(i))  
  13.     {  
  14.         printf("i is even");  
  15.     }  
  16.     else  
  17.         printf("i is not odd");  
  18.   
  19.     return 0;  
  20. }  

实现代码如下:

#include
using namespace std; //判断元素的奇偶性 bool isEven(int data) { return((data & 1) == 0 ? true : false); } void reOrder(int *data , int len) { if(data == NULL || len == 0) return; int *left = data; int *right = data + len - 1; int temp = 0; while(left < right) { if(!isEven(*left)) //如果左边为奇数 { left++; continue; } if(isEven(*right)) //如果右边为偶数 { right--; continue; } temp = *left; *left = *right; *right = temp; left++; right--; } } int main() { int data[] = {2 , 5 , 4 , 9 , 6 , 4}; int len = sizeof(data)/sizeof(int); reOrder(data , len); for(int i = 0 ; i < len ; i++) { cout<
<<" "; } cout<

 

转载地址:http://ajhoa.baihongyu.com/

你可能感兴趣的文章
走进Router世界
查看>>
MySQL数据库备份和还原的常用命令小结
查看>>
一文读懂 Spring Data Jpa!
查看>>
仿iphone动态萤火虫锁屏应用源码
查看>>
vmware虚拟机安装ghost版xp-黑屏错误及解决方法
查看>>
每次打开office2010都说“正在配置office2010.......”
查看>>
Linux下删除文件为何空间不释放
查看>>
AirTight C-65 AP
查看>>
15个开发者最亲睐的Android代码编辑器
查看>>
html web 简单打印
查看>>
Quartz2D打水印
查看>>
分布式事物方案前-BASE理论的介绍
查看>>
在商业项目中使用JDK?
查看>>
Groovy使用List集合
查看>>
PXE自动化安装CentOS 7
查看>>
网络安全与防火墙
查看>>
centos7.2下安装haproxy1.7
查看>>
MySQL/MariaDB DML操作之Select
查看>>
Spring Security 3.1.1安全控制的例子(二)
查看>>
设计模式之-工厂方法
查看>>