调整数组使奇数全部都位于偶数前面其他数字顺序不变,怎么做呀,这个函数应该怎么写呀
方法很多,比如先统计奇数个数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;}
}
}
}
谢谢!