问题描述:
题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
问题分析:
1、定义一个数组,键入一串数值;
2、传参给函数;
3、遍历数组,从左数发现偶数则使用指针与从右数第一个奇数交换位置 ;
4、打印最终结果。
源代码:
#include <stdio.h>
#include <windows.h>
#pragma warning (disable :4996)
void AdjustmentNum(int a[], int len)
{
int i = 0;
int *left = a;
int *right = a + len - 1;
int tmp = 0;
while(left<right)
{
while(*left % 2 != 0)
{
left++;
}
while (*right % 2 == 0)
{
right--;
}
if (left < right)
{
tmp = *left;
*left = *right;
*right = tmp;
}
}
}
int main()
{
int i = 0;
int arr[10] = { 1, 2, 3, 4, 5, 5, 6, 4, 8, 7 };
int len = sizeof(arr) / sizeof(arr[0]);
printf("修改前的数组为:\n");
for (i; i < 10; i++