输入一个整数n和n个各不相等的整数,将这些整数从小到大进行排序,要求奇数在前,偶数在后。

输入一个整数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;
}

没有具体代码要求的话,就是先遍历把奇数和偶数分别放到两个新数组,然后各自排序后先输出奇数,再输出偶数

下载码来一个