鱼C论坛

 找回密码
 立即注册
查看: 1596|回复: 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 编辑
#include <stdio.h>

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

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

C:\Bin>x
输入10个数:10 9 8 7 6 1 2 3 4 5
  1  3  5  7  9  2  4  6  8 10
C:\Bin>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[10] , i , j , k , m                                                                                       ;
        printf("输入10个数:")                                                                                                  ;
        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]) ;
        for(m = 10 , i = 0 ; i < m / 2 ; i ++) {
                if(d[i] > d[m - i - 1]) swap(& d[i] , & d[m - i - 1])                                                           ;
                for(j = i + 1 ; j < m - 1 - i; j ++) {
                        if(d[j] < d[i]) swap(& d[j] , & d[i])                                                                   ;
                        else if(d[j] > d[m - i - 1]) swap(& d[j] , & d[m - i - 1])                                              ;
                }
        }
        for(k = 0 ; k < m ; k ++) if(d[k] % 2) printf(" %2d" , d[k])                                                            ;
        for(k = 0 ; k < m ; k ++) if(!(d[k] % 2)) printf(" %2d" , d[k])                                                         ;
}
        编译运行实况:
C:\Bin>g++ -static -o x x.c

C:\Bin>x
输入10个数:10 9 8 7 6 1 2 3 4 5
  1  3  5  7  9  2  4  6  8 10
C:\Bin>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 18:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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