R7-5 奇偶排序
分数 15
全屏浏览题目
切换布局
作者 wxr
单位 宁波财经学院
给定一个长度为n(0<n≤200)的正整数序列,按照以下要求排序:
- 奇数排在偶数前面;
 - 奇数与偶数各自从小到大排列;
 
请根据以上要求完成排序,输出排序后的整数序列。
输入格式:
第一行给定一个整数n,第二行给出n个正整数,每个正整数不会超过int所能表示的范围。
输出格式:
输出排序后的整数序列,每行一个整数,共n行。
输入样例:
6
1 2 3 4 5 6
        输出样例:
1
3
5
2
4
6
        代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
参考答案
            
            
              cpp
              
              
            
          
          #include<stdio.h>
int main(){
    int n,i,sign=0,p=0,q=0,j,t;
    scanf("%d",&n);
    int group[n],jishu[n],oushu[n];
    if(n%2!=0)sign=1;
    for(i=0;i<n;i++){
        scanf("%d",&group[i]);
        if(group[i]%2==0)oushu[p++]=group[i];
        else jishu[q++]=group[i];
    }
    for(i=0;i<p-1;i++){
        for(j=0;j<p-1;j++){
            if(oushu[j]>oushu[j+1]){
                t=oushu[j];
                oushu[j]=oushu[j+1];
                oushu[j+1]=t;
            }
        }
    }
    for(i=0;i<q-1;i++){
        for(j=0;j<q-1;j++){
            if(jishu[j]>jishu[j+1]){
                t=jishu[j];
                jishu[j]=jishu[j+1];
                jishu[j+1]=t;
            }
        }
    }
    for(i=0;i<q;i++)
        printf("%d\n",jishu[i]);
    for(i=0;i<p;i++)
        printf("%d\n",oushu[i]);
    return 0;
}