C/CPP:数组元素置逆两种方法 首尾置逆 int main() { int arr[5] = { 1,2,3,4,5 }; for (int i = 0; i < 5; i++) { cout << arr[i] << endl; } /*实现逆置. 记录起始下标位置 记录结束下标位置 起始下标与结束下标的元素互换 起始位置++ 结束位置-- 循环执行2.1操作,直到起始位置 >= 结束位置*/ int start = 0;//起始下标 int end = sizeof(arr) / sizeof(arr[0]) - 1;//结束下标 while (start<end) { //实现元素互换 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; //下标更新 start++; end--; } for (int i = 0; i < 5; i++) { cout << arr[i] << endl; } } 相邻元素交换 思想:设数组有n位元素,将首位元素依次与后位元素交换位置至元素末端为一次交换,之后末尾元素不参与循环,前n-1位重复上述循环。 int main() { int a[5] = { 1,2,3,4,5 }; int temp=0; for (int i = 0; i <5; i++) { cout << a[i] << endl;//打印原顺序数组 } for (int i = 4; i>=0; i--)//共需循环数组元素个数n次 { for (int j = 0,k=0; j <=i; j++)单词循环相邻元素交换n-1次 { temp = a[j]; a[j] = a[k ]; a[k] = temp; k = j++; j = j--; } } for (int i = 0; i < 5; i++) { cout << a[i] << endl; } return 0; }