题目:
输入一个整型数组,实现一个函数来调整数组中数字的顺序,奇数全部都位于偶数的前面
算法思想:
从左边找到偶数
从右边找到奇数
再将他们交换
可以用指针完成代码的实现
代码实现:
#include<stdio.h>
void move(int* parr,int sz)
{
int* left=parr;
int t;
int* right=parr+sz-1;
while(left<=right)
{
if(*left%2==0)
{
if(*right%2!=0)
{
t=*left;
*left=*right;
*right=t;
}
}
left++;
right--;
}
}
void print(int* parr,int sz)
{
int i;
for(i=0;i<sz;i++)
{
printf("%d ",*(parr+i));
}
putchar('\n');
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int sz;
sz=sizeof(arr)/sizeof(arr[0]);
move(arr,sz);
print(arr,sz);
return 0;
}