鱼C论坛

 找回密码
 立即注册
查看: 1731|回复: 1

[已解决]请求帮忙!

[复制链接]
发表于 2019-12-2 15:38:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入10个数,将10个数按生序排列输出,并且奇数在前,偶数在后。如果输出十个数是:10 9 8 7 6 5 4 3 2 1,则输出:1 3 5 7 9 2 4 6 8 10。
(提示:可利用2个数组变量,一个用来存放输入的整数,输入后,对这个数组进行排序,然后将数据复制到另一个数组中,先复制奇数在复制偶数)。
最佳答案
2019-12-2 16:34:45
本帖最后由 jackz007 于 2019-12-2 16:36 编辑
  1. #include <stdio.h>

  2. void swap(int * a , int * b)
  3. {
  4.         int t     ;
  5.         t = * a   ;
  6.         * a = * b ;
  7.         * b = t   ;
  8. }

  9. main(void)
  10. {
  11.         int a , b , d[10] , i , j , k , m                                                                                       ;
  12.         printf("输入10个数:")                                                                                                  ;
  13.         scanf("%d%d%d%d%d%d%d%d%d%d" , & d[0] , & d[1] , & d[2] , & d[3] , & d[4] , & d[5] , & d[6] , & d[7] , & d[8] , & d[9]) ;
  14.         for(m = 10 , i = 0 ; i < m / 2 ; i ++) {
  15.                 if(d[i] > d[m - i - 1]) swap(& d[i] , & d[m - i - 1])                                                           ;
  16.                 for(j = i + 1 ; j < m - 1 - i; j ++) {
  17.                         if(d[j] < d[i]) swap(& d[j] , & d[i])                                                                   ;
  18.                         else if(d[j] > d[m - i - 1]) swap(& d[j] , & d[m - i - 1])                                              ;
  19.                 }
  20.         }
  21.         for(k = 0 ; k < m ; k ++) if(d[k] % 2) printf(" %2d" , d[k])                                                            ;
  22.         for(k = 0 ; k < m ; k ++) if(!(d[k] % 2)) printf(" %2d" , d[k])                                                         ;
  23. }
复制代码

        编译运行实况:
  1. C:\Bin>g++ -static -o x x.c

  2. C:\Bin>x
  3. 输入10个数:10 9 8 7 6 1 2 3 4 5
  4.   1  3  5  7  9  2  4  6  8 10
  5. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-2 16:34:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-12-2 16:36 编辑
  1. #include <stdio.h>

  2. void swap(int * a , int * b)
  3. {
  4.         int t     ;
  5.         t = * a   ;
  6.         * a = * b ;
  7.         * b = t   ;
  8. }

  9. main(void)
  10. {
  11.         int a , b , d[10] , i , j , k , m                                                                                       ;
  12.         printf("输入10个数:")                                                                                                  ;
  13.         scanf("%d%d%d%d%d%d%d%d%d%d" , & d[0] , & d[1] , & d[2] , & d[3] , & d[4] , & d[5] , & d[6] , & d[7] , & d[8] , & d[9]) ;
  14.         for(m = 10 , i = 0 ; i < m / 2 ; i ++) {
  15.                 if(d[i] > d[m - i - 1]) swap(& d[i] , & d[m - i - 1])                                                           ;
  16.                 for(j = i + 1 ; j < m - 1 - i; j ++) {
  17.                         if(d[j] < d[i]) swap(& d[j] , & d[i])                                                                   ;
  18.                         else if(d[j] > d[m - i - 1]) swap(& d[j] , & d[m - i - 1])                                              ;
  19.                 }
  20.         }
  21.         for(k = 0 ; k < m ; k ++) if(d[k] % 2) printf(" %2d" , d[k])                                                            ;
  22.         for(k = 0 ; k < m ; k ++) if(!(d[k] % 2)) printf(" %2d" , d[k])                                                         ;
  23. }
复制代码

        编译运行实况:
  1. C:\Bin>g++ -static -o x x.c

  2. C:\Bin>x
  3. 输入10个数:10 9 8 7 6 1 2 3 4 5
  4.   1  3  5  7  9  2  4  6  8 10
  5. C:\Bin>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表