//第一种方法: #include <stdio.h> void reverse(int *p,int len) { int *start = p; int *end = p + len - 1; int tmp = 0; while (start < end) { if ((*start) % 2 == 1) { start++; } else { if ((*end % 2 == 0)) { end--; } else { tmp = *start; *start = *end; *end = tmp; } } } } int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int len = sizeof(arr) / sizeof(arr[0]); reverse(arr,len); int i = 0; for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; } //第二种方法: #include <stdio.h> void swap(int *pa, int*pb) { int tmp = *pa; *pa = *pb; *pb = tmp; } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int left = 0; int right = sizeof(arr) / sizeof(arr[0])-1; while (left < right) { while ((left < right) && (arr[left] % 2 == 1)) { left++; } while ((left < right) && (arr[right] % 2 == 0)) { right--; } if (left < right) { swap(&arr[left], &arr[right]); left++; right--; } } int i = 0; for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
使数组中奇数位于偶数前面
原创
©著作权归作者所有:来自51CTO博客作者小杨杨雪松的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:排序字符串数组函数(两种方法)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础 -
ios 交换数组内元素位置 数组数据交换
两个变量之间的交换,通过查阅资料,有如下四种常见方法:1.利用一个中间变量实现交换
ios 交换数组内元素位置 i++ #include 冒泡排序