给定一个长度为n(0<n≤200)的正整数序列,按照以下要求排序:
- 奇数排在偶数前面;
- 奇数与偶数各自从小到大排列;
请根据以上要求完成排序,输出排序后的整数序列。
输入格式:
第一行给定一个整数n,第二行给出n个正整数,每个正整数不会超过int所能表示的范围。
输出格式:
输出排序后的整数序列,每行一个整数,共n行。
输入样例:
6
1 2 3 4 5 6
结尾无空行
输出样例:
1
3
5
2
4
6
下面是源代码:
#include<stdio.h>
int main()
{
int n,a[200],b[200],c[200],i=0,j=0,k=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(a[i]%2==0)
{
b[j]=a[i];/*将满足奇数的数存入新数组*/
j++;
}
else
{
c[k]=a[i];/*将满足偶数的数存入新数组*/
k++;
}
}
for(i=0;i<k;i++)
{
int m=i,n,a;
for(n=m+1;n<k;n++)
{
if(c[m]>c[n])/*给奇数数组排序*/
{
m=n;/*大的数与小的数调换位置*/
}
}
a=c[i];
c[i]=c[m];
c[m]=a;
printf("%d\n",c[i]);
}
for(i=0;i<j;i++)
{
int m=i,n,a;
for(n=m+1;n<j;n++)
{
if(b[m]>b[n])/*给偶数数组排序*/
{
m=n;/*大的数与小的数调换位置*/
}
}
a=b[i];
b[i]=b[m];
b[m]=a;
printf("%d\n",b[i]);
}
}
该博客介绍了如何对一个包含正整数的序列进行奇偶排序,即奇数排在偶数前面,各自内部按从小到大排列。给出了C语言的实现代码,包括输入输出格式、样例以及完整的排序逻辑。
411

被折叠的 条评论
为什么被折叠?



