先判断数组的第一位arr[0]是奇数还是偶数,如果是奇数,就继续下一位,如果是偶数,就把它与最后一位交换
#include <stdio.h>
#include <windows.h>
void adjust(int *arr, int size)
{
int i = 0;
int j = size - 1;
for (; i < j; i++)
{
if (arr[i] % 2 != 0){
continue;
}
else{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
if (arr[j] % 2 == 0)
j--;
i++;
}
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8 };
int size = sizeof(arr) / sizeof(arr[0]);
int i;
adjust(arr, size);
for (i = 0; i < size; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}
#include <windows.h>
void adjust(int *arr, int size)
{
int i = 0;
int j = size - 1;
for (; i < j; i++)
{
if (arr[i] % 2 != 0){
continue;
}
else{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
if (arr[j] % 2 == 0)
j--;
i++;
}
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8 };
int size = sizeof(arr) / sizeof(arr[0]);
int i;
adjust(arr, size);
for (i = 0; i < size; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}