简单的C语言数组问题

调整数组使奇数全部都位于偶数前面其他数字顺序不变,怎么做呀,这个函数应该怎么写呀

img

方法很多,比如先统计奇数个数n,然后遍历这个数组,奇数从num[0]开始写,偶数从num[n]开始写,最后得到一个新的数组,
再比如先从头开始找到一个偶数,然后在这个偶数往后的数里找一个最近的奇数(如果遍历后没有找到最近奇数就重新找下一个偶数)交换位置,继续找下一个偶数,直到全部找完。

供参考:

#include <stdio.h>
#include <string.h>
void fun(char s[]);
int main()
{
    char str[21];
    gets(str);
    fun(str);
    puts(str);
    return 0;
}
/* 你提交的代码将被嵌在这里 */
void fun(char s[])
{
     char tmp;
     int i ,j ,length = strlen(s);
     for (i = 0;i < length - 1;i++){
        for (j = 0;j < length - i - 1;j++){
            //s[j]为偶数,s[j+1]为奇数,奇数在前,偶数在后
            if (s[j] % 2 == 0 && s[j+1] % 2 != 0 )
               {tmp = s[j];s[j] = s[j+1];s[j+1] = tmp;}
        }
    }
}

谢谢!