在不使用第二个数组的情况下反转数组。 (C语言)

时间:2017-03-24 16:35:50

标签: c arrays

好的,所以我创建了这段代码。我知道有一个关于这个问题的问题,但我不知道即使有建议的逻辑我也没有得到理想的结果。我得到的输出是我输入的相同数组,它没有反转。其中使用了C语言。

dict[str, child_node.ChildNode]

2 个答案:

答案 0 :(得分:1)

你只需要运行你的反向循环n / 2次。 因为当你交换你从两边交换时,这就是你必须交换n / 2次的原因。

for(i=0;i<n/2;i++)
    {
        temp = arr[i];
        arr[i]=arr[j];
        arr[j]=temp;
        j--;
    }

答案 1 :(得分:0)

你的代码正在颠倒数组的顺序......两次。如果数组有2个元素 - 5和10,请说明它是如何工作的。

循环以i=0开头,并用arr [1]交换arr [0]。 然后i递增并且它仍然小于n,因此继续i=1并使用arr [0]交换arr [1]。

解决方案是只运行一半数组的循环。