本帖最后由 Nevergrowold 于 2016-5-23 14:12 编辑
如 有如下数组 int arr[9]={13,41,2,47,7,24,8,10,33}; 输出结果为 7 13 33 41 47 2 8 10 24 开始在网上看别人的代码,都是一大堆,很多我看不懂 下面是我的代码- #include <stdio.h>
- void sort(int *a,int len){
- int temp;
- for (int i=0; i<len-1; i++) {
- for (int j=0; j<len-1-i; j++) {
- if (a[j]>a[j+1]) {
- temp=a[j]; //先冒泡排序从小到大
- a[j]=a[j+1];
- a[j+1]=temp;
-
- }if (((a[j]&1)==0)&&((a[j+1]&1)==1)) {
- temp=a[j]; //后奇偶交换,奇数在左边,偶数在右边
- a[j]=a[j+1];
- a[j+1]=temp;
- }
-
- }
-
- }
- }
- int main(int argc, const char * argv[]) {
- int arr[9]={13,41,2,47,7,24,8,10,33};
- sort(arr,9);
- for (int i=0; i<9; i++) {
- printf("%d\t",arr[i]);
- }
- return 0;
- }
复制代码 功能实现了,不知道有没有错误。还有一个问题,我把奇偶性判断的条件写在前面,完了再写冒泡排序,结果是不对的。一直搞不懂是为什么,谁能解释一下
|