题目描述
已知n个整数,将n个整数的奇数放在前,偶数放在后,奇数部分与偶数部分都按升序排列输出。
输入与输出要求:首先输入一个整数n,代表输入整数个数,n不会超过200。然后是n个待排序的整数,每个整数的取值范围是0-1000。输出排序后的n个数,其中奇数在前偶数在后,数与数之间用空格分开,注意第n个数后没有空格而是换行符。
程序运行效果:
Sample 1:
10↙
10 9 8 7 6 5 4 3 2 1↙
1 3 5 7 9 2 4 6 8 10
#include <stdio.h>
void bubbleSortDown1(int a[],int size)
{
int loc,i,temp;
/*总共需要比较size-1趟。每一趟确定a[loc]的值*/
for(loc = size-1;loc >= 1;loc--){
/*从下标为0~loc数组元素中依次进行比较交换*/
for(i = 0;i <= loc-1;i++)
if(a[i] > a[i+1]){ /*相邻两个元素交换*/
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
int main(void)
{
int i,n;
scanf("%d",&n);
int a[200];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubbleSortDown1(a,n);
for(i=0;i<n;i++)
{
if(a[i]%2!=0)
printf("%d ",a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]%2==0)
printf("%d ",a[i]);
}
return 0;
}
亲测可过