Reversing an array In place

后端 未结 11 899
温柔的废话
温柔的废话 2020-12-21 04:20

Okay so I\'ve tried to print and Array and then reverse is using another array But I\'m trying to create a For Loop that will take an array and reverse all of the elements i

11条回答
  •  -上瘾入骨i
    2020-12-21 04:59

    You are on the right track but need to think about that last for loop a little more and the assignment operation inside. The loop initialization is off, since i = a[len] - 1 will copy the value of the last entry to i. Since that value is a random number, your index will probably start out of bounds.

    Next, you're copying half of the array to the other half and then back. That loop does the following: a[7] = a[0] a[6] = a[1] a[5] = a[2] a[4] = a[3] ...

    At this point you've lost all of the initial values in a[4] through a[7].

    Try this:

    for( i = 0; i < len / 2; i++ ){
        int temp = a[i];
        a[i] = a[len - i];
        a[len - i] = temp;
    }
    

    Use a debugger and step through the loop watching the value of i, temp, and each element in the array

提交回复
热议问题