嘿,下面是我想出的代码,有些人可以解释一下它的数组反转有什么不对
#include <iostream>
using namespace std;
int main() {
int arr[4] = {1,4,3,2};
int size = sizeof(arr)/sizeof(arr[0]);
int n = size - 1;
cout << size << endl;
cout << n << endl;
for (int i = 0; i<size; i++)
{
arr[i] = arr[n - i];
cout << arr[i] << endl;
}
return 0;
}
你已经回答了自己的问题。但实际上,不是从数组的两端交换值,而是在开头用最后的值覆盖值,一旦到达中间点,就会开始将这些值复制回到后半部分。
正如你写的那样:arr[0] = arr[3];
但后来arr[3] = arr[0];
这只是一个漫长的方式,两次颠倒阵列的后半部分。