分析:
1.从左往右数取第一个偶数(i),从右往左数取第一个奇数(j)
然后将两者进行交换。a[i]<–>a[j]
2.并以此类推,再寻找偶数和奇数进行交换。。。
3.当i<j时结束。
#include<stdio.h>
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
int j = 9;
while(i < j)
{
//从头开始找第一个偶数
while((i < j)&&(a[i] % 2 != 0))
{
i++;
}
//从尾开始找第一个奇数
while((i < j)&&(a[j] % 2 != 1))
{
j--;
}
if(i < j)
{
//交换找到的从头开始的第一个偶数
//与从尾开始的第一个奇数
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for(i = 0;i < 10;i++)
{
printf("%d ",a[i]);
}
return 0;
}