他叫我写满十个字,咋做求解辣

问题相关代码,请勿粘贴截图

编写一个程序实现:对一个给定数组(该数组中有5个奇数和5个偶数)进行重新排序,把奇数按照从小到大的方式排序放在数组的前半部分,把偶数按照从大到小的方式放在数组的后半部分。如给定数组为:a[10]={1,8,7,6,2,3,5,4,9,10};经过排序后的数组为: a[10]={1,3,5,7,9,10,8,6,4,2};

把5个奇数和5个偶数分成两个数组分别排序,之后再合并即可

你题目的解答代码如下:

#include<stdio.h>

void sort(int a[],int n,int f)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(f==0 && a[j] > a[j+1] || f==1 && a[j] < a[j+1])
            {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
}

void main()
{
    int a[10]={1,8,7,6,2,3,5,4,9,10};
    int i,b[5],c[5],bl=0,cl=0;
    for( i=0; i<10; i++ )
        if (a[i]%2==1)
            b[bl++] = a[i];
        else
            c[cl++] = a[i];
    sort(b,bl,0);
    sort(c,cl,1);
    for( i=0; i<bl; i++ )
        a[i] = b[i];
    for( i=0; i<cl; i++ )
        a[bl+i] = c[i];
    for( i=0; i<10; i++ )
        printf("%d ", a[i]);
}

如有帮助,望采纳!谢谢!