该函数接受一个整数数组,数组的范围是0到100。在函数中,你需要重新排列数组的元素,使得左边都是奇数,右边都是奇数。偶数。例如,数组 1, 4, 5, 8, 9 应重写为 1, 5, 9, 4, 8。
代码:
unsigned* segregateEvenOdd(unsigned array[], const size_t size)
{
for (int index = 1; index <= size; ++index)
{
if (array[index] % 2 == 0)
{
std::swap(array[index], array[index + 1]);
}
}
array[size] = 0;
return array;
}
int main()
{
int size = 100;
unsigned array[101];
for (unsigned index = 0; index <= size; ++index)
{
array[index] = index;
}
std::cout << "segregateEvenOdd: " << segregateEvenOdd(array, size) << "\n";
return 0;
}
我的问题是什么:
我在函数中返回的数组是否错误?因为显示如下:
segregateEvenOdd: 000000E9B9DEF9C8因为我没有正确返回数组,所以我不知道我是否正确完成了任务。因此,我很高兴收到有关如何改进我的代码的建议。
由于某种原因,只获取、检查和交换一个索引。不进入下一个:
Index:2 Index1:3 Index2:2