码迷,mamicode.com
首页 > 编程语言 > 详细

题目1117:整数奇偶排序

时间:2015-05-03 17:33:04      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:online judge   九度   c++   编程   namespace   

题目描述:

输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。

输入:

任意排序的10个整数(0~100),彼此以空格分隔。

输出:

可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。

样例输入:
4 7 3 13 11 12 0 47 34 98
样例输出:
47 13 11 7 3 0 4 12 34 98
提示:

1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>>a[9])类似的做法来实现;
2. 输入数据随机,有可能相等。



C++代码:

#include<stdio.h>
#include<stdlib.h>
 
int comp1(const void *a,const void *b)
{return *(int *)a-*(int *)b;}
 
int comp2(const void *a,const void *b)
{return *(int *)b-*(int *)a;}
 
int main()
{
        int a[10];
        while(scanf("%d",&a[0])!=EOF)
        {
                int i,j=0,k=0,b[10],c[10];
                for(i=1;i<10;i++)
                        scanf("%d",&a[i]);
                for(i=0;i<10;i++)
                {
                        if(a[i]%2==0) {b[j]=a[i];j++;}
                        else {c[k]=a[i];k++;}
                }
                qsort(b,j,sizeof(int),comp1);
                qsort(c,k,sizeof(int),comp2);
                for(i=0;i<k;i++)
                {
                        if(i!=k-1) printf("%d ",c[i]);
                        else printf("%d",c[i]);
                }
                if(k!=0 && j!=0) printf(" ");
                for(i=0;i<j;i++)
                {
                        if(i!=j-1) printf("%d ",b[i]);
                        else printf("%d",b[i]);
                }
                printf("\n");
        }
        return 0;
}
/**************************************************************
    Problem: 1117
    User: Carvin
    Language: C++
    Result: Accepted
    Time:50 ms
    Memory:1020 kb
****************************************************************/



题目1117:整数奇偶排序

标签:online judge   九度   c++   编程   namespace   

原文地址:http://blog.csdn.net/carvin_zh/article/details/45459625

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!