用C语言编程,实现调整数组,使奇数全部位于偶数前边,
2016-05-29 22:49
344 查看
函数要求实现功能:调整数组使奇数全部都位于偶数前面。
要求:
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
思考,要想实现此功能,首先对函数数组进行遍历,从两头进行,一个从前向后查看数组元素是否为奇数,一个从后向前查看数组元素是否为偶数,如果前为偶,后为奇则进行调换!
程序如下:
本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1712723
要求:
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
思考,要想实现此功能,首先对函数数组进行遍历,从两头进行,一个从前向后查看数组元素是否为奇数,一个从后向前查看数组元素是否为偶数,如果前为偶,后为奇则进行调换!
程序如下:
/* **2.调整数组使奇数全部都位于偶数前面。 ** 题目: **输入一个整数数组,实现一个函数, **来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, **所有偶数位于数组的后半部分。 */ #include<stdio.h> #include<stdlib.h> void adjust_arr(int arr[], int size) { int temp; int i, j; /*将奇位数放在前,偶位数放在后*/ //if (size % 2 == 1) //{ // i = 1; j = size-1; //} //else //{ // i = 1; j = size - 2; //} //for (; i <= j; i += 2, j -= 2) //{ // temp = arr[i]; // arr[i] = arr[j]; // arr[j] = temp; //} /*将奇数放在前,偶数放在后*/ for (i = 0,j = size-1; i <j; ) { if ((arr[i] % 2 == 0) && (arr[j] % 2 == 1)) //如果奇数在后,偶数在前,则进行调换 { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } if (arr[i] % 2 == 1) //如果arr[i]为奇数,i++ i++; if (arr[j] % 2 == 0) //如果arr[j]为偶数,j-- j--; } } int main() { int arr[] = { 2, 3, 4, 5, 6, 7, 10,11,12,13,14,15,16,8, 9 ,17,18,19,20}; int i; int size = sizeof(arr) / sizeof(arr[0]); adjust_arr(arr, size); //函数调用,队数组进行排序, for (i = 0; i < size; i++) printf("%d ",arr[i]); printf("\n"); system("pause"); return 0; }本程序还附带实现一个功能,将奇数位与偶数位进行调换,如果哪位大神发现了程序的错误之处,欢迎批评指正!
本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1712723
相关文章推荐
- 用C语言编写函数,实现strlen计算字符串长度的功能
- VC 对话框屏蔽ESC 和回车键 默认结束对话框
- python绑定C++类
- c++作业6
- leetcode #53 in cpp
- C++中父类成员变量和子类成员变量重复定义及访问方法的深入探究
- C++随笔:.NET CoreCLR之GC探索(3)
- C/C++ 获取汉字拼音首字母
- C++ 循环结构 的课堂笔记以及知识点
- c语言学习笔记17之函数
- C++与引用2
- 关于vptr的一些问题
- C++作业6
- C++和双重检查锁定模式(DCLP)的风险
- c++ 对象内存布局详解
- 大数处理
- 用C语言写的双色球
- 简单的K-means算法C语言实现代码
- C++与引用1
- (学习笔记)从引用参数谈到左右值