数组的逆置原理其实就是两个数字的交换,为了方便理解,我们画一张图,设该数组为1,3,2,5,4。
下图中,我们先定义start和end,start=0;end=数组最后一个元素的下标,具体代码可以看下面的end的定义,然后我们再定义一个空的int t(用来存放要交换的元素),如果直接交换元素会覆盖,得不到想要的交换效果,这个可以自己试试,然后start++,end--到下一个交换的元素,做这个循环的条件就是start<end.
下面是代码;C和C++元素逆置的原理是一样的,核心代码也是一样的。
#include<iostream> using namespace std; int main() { int arr[5] = { 1,3,2,5,4 }; int t;//创建临时空间,存放需要逆置的数 int start = 0; //int end = 4;不适用的原因:不灵活,计算量会相对较大 int end = sizeof(arr) / sizeof(arr[0])-1;//用全部数组的长度除以单个数的长度-1就得到了最后一个数字下 do { t = arr[start]; arr[start] = arr[end]; arr[end] = t; start++; end--; } while (start < end); for (int i = 0; i < 5; i++) { cout << arr[i] << endl; } system("pause"); return 0; }