void IsOdd(int *pa,int right)
{
int left = 0;
int temp = 0;
for (int i = 0; i < right; i++)
{
while (1)
{
if (*(pa + i) % 2 == 1)//判断是否为素数。
{
/*printf("%d", *(pa + i));*/
temp = *(pa + left);//将素数放到数组前面。
*(pa + left) = *(pa + i);
*(pa + i) = temp;
left++;//每次放置素数之后,位置加一。
}
break;
}
}
}
void print(int* pa2,int sz)//打印数组。
{
for (int j = 0; j< sz; j++)
{
printf("%d ", *(pa2 + j));
}
}
int main()
{
int arr[10]= { 0,1,2,3,4,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
IsOdd(arr, sz);
print(arr,sz);
return 0;
}
1判断奇数
2若是奇数,和数组前方元素做交换
3输出
能理解冒泡就能完成这题。
这题上也用了指针的方法去完成,将数组首元素地址传入函数,用指针变量接受。
在函数中,形参是不能改变实参的,但如果用指针,就可以通过解引用的方法改变指向地址存放的值。