/*将一个数组的奇数和偶数分开,奇数在左,偶数在右*/
#include<stdio.h>
int main()
{
int m[10];
int i,j,k,tmp;
printf("please input 10 numbers:\n m[]= ");
for(i=0;i<10;i++)
scanf("%d",&m[i]);
while (getchar()!='\n') ; //清空缓存区的\n否则getchar处可能执行出错
i=0,j=9;
while(i<j)
{
while(i<=9&&m[i]%2) //此时m[i]为偶数则跳出循环
i++;
#ifdef DEBUG
printf ("m[i]=%d\t",m[i]) ;
#endif
while(j>=0&&(m[j]%2==0)) //此时m[j]为奇数则跳出循环
j--;
#ifdef DEBUG
printf ("m[j]=%d\n",m[j]) ;
#endif
if(i < j)
{
tmp = m[i];
m[i]=m[j];
m[j] = tmp;
}
#ifdef DEBUG
printf("m[]= ");
for(k=0;k<10;k++)
printf("%d ",m[k]);
printf("\n");
getchar () ;
#endif
}
printf("the final m[]= ");
for(i=0;i<10;i++)
printf("%d ",m[i]);
printf("\n");
return 0;
}
/*用 gcc -DDEBUG -o xxxx xxxx.c可调出debug信息* /