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;
}