liuyanxiong 发表于 2019-12-2 15:38:44

请求帮忙!

输入10个数,将10个数按生序排列输出,并且奇数在前,偶数在后。如果输出十个数是:10 9 8 7 6 5 4 3 2 1,则输出:1 3 5 7 9 2 4 6 8 10。
(提示:可利用2个数组变量,一个用来存放输入的整数,输入后,对这个数组进行排序,然后将数据复制到另一个数组中,先复制奇数在复制偶数)。

jackz007 发表于 2019-12-2 16:34:45

本帖最后由 jackz007 于 2019-12-2 16:36 编辑

#include <stdio.h>

void swap(int * a , int * b)
{
      int t   ;
      t = * a   ;
      * a = * b ;
      * b = t   ;
}

main(void)
{
      int a , b , d , i , j , k , m                                                                                       ;
      printf("输入10个数:")                                                                                                ;
      scanf("%d%d%d%d%d%d%d%d%d%d" , & d , & d , & d , & d , & d , & d , & d , & d , & d , & d) ;
      for(m = 10 , i = 0 ; i < m / 2 ; i ++) {
                if(d > d) swap(& d , & d)                                                         ;
                for(j = i + 1 ; j < m - 1 - i; j ++) {
                        if(d < d) swap(& d , & d)                                                                   ;
                        else if(d > d) swap(& d , & d)                                              ;
                }
      }
      for(k = 0 ; k < m ; k ++) if(d % 2) printf(" %2d" , d)                                                            ;
      for(k = 0 ; k < m ; k ++) if(!(d % 2)) printf(" %2d" , d)                                                         ;
}
      编译运行实况:
C:\Bin>g++ -static -o x x.c

C:\Bin>x
输入10个数:10 9 8 7 6 1 2 3 4 5
135792468 10
C:\Bin>
页: [1]
查看完整版本: 请求帮忙!