输入一个整数n和n个各不相等的整数,将这些整数从小到大进行排序,要求奇数在前,偶数在后。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入一个整数n(1<n<100),再输入n个整数。
输出格式:
对于每组测试,在一行上输出根据要求排序后的结果,数据之间留一个空格。
输入样例:
3
5 1 2 3 4 5
3 12 4 5
6 2 4 6 8 0 1
输出样例:
1 3 5 2 4
5 4 12
1 0 2 4 6 8
输入一个整数n和n个各不相等的整数,将这些整数从小到大进行排序,要求奇数在前,偶数在后。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入一个整数n(1<n<100),再输入n个整数。
输出格式:
对于每组测试,在一行上输出根据要求排序后的结果,数据之间留一个空格。
输入样例:
3
5 1 2 3 4 5
3 12 4 5
6 2 4 6 8 0 1
输出样例:
1 3 5 2 4
5 4 12
1 0 2 4 6 8
代码如下:
#include <stdio.h>
//冒泡排序
void bubble_sort(int a[],int n)
{
int i,j,t;
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if(a[j] > a[j+1]) //从小到大,升序
{
t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int i,T,n,a[100],j,k,m,s;
scanf("%d",&T);
for(i=0;i<T;i++)
{
scanf("%d",&n);
for(j=0;j<n;j++)
scanf("%d",&a[j]);
//排序
bubble_sort(a,n);
//调整奇偶数的位置
m = 0;//奇数index
for (j=0;j<n;j++)
{
if(a[j]%2==1)
{
//把a[j]放在a[m],数组后移
s = a[j];
for(k=j;k>m;k--)
{
a[k] = a[k-1];
}
a[m] = s;
m++;
}
}
//显示
for(k=0;k<n;k++)
{
if(k<n-1)
printf("%d ",a[k]);
else
printf("%d\n",a[k]);
}
}
return 0;
}