问题描述:
请声明一个N(<100)个元素的数组,将其元素进行逆置换(如原来数组元素顺序为1,3,2,5,4,逆置换后顺序为4,5,2,3,1 。
输入格式:
第一行输入N,表示数组元素个数。
第二行依次输入N个数组元素,两元素之间用空格隔开。
输出格式:
输出N个置换后的数组元素,两元素之间用空格隔开。
输入样例:
10
2 5 6 14 9 28 3 7 16 20
输出样例:
20 16 7 3 28 9 14 6 5 2
运行截图:
程序代码:
#include<iostream>
#define M 100 //宏定义常量M,用来表示数组元素的最大个数
using namespace std;
/*定义swap()函数,用来置换数组arr[]中的第一个(begin)和最后一个(end)元素*/
void swap(int arr[], int begin, int end) {
int t = arr[begin];
arr[begin] = arr[end];
arr[end] = t;
}
int main() {
int n=0; //n表示数组中的元素个数,也代表了数组长度
int arr[M] = { 0 };
cout << "请输入数组元素的个数:" << endl;
cin >> n;
cout << "请依次输入所有数组元素:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int begin = 0; //begin表示表示数组第一个元素所在的位置下标
int end =n - 1; //end表示数组最后一个元素所在的位置下标
/*循环遍历数组元素,进行首尾元素置换*/
for ( begin ; begin < end; begin++, end--) {
swap(arr, begin, end); //调用函数swap(),
}
cout << "\n置换后的数组为:" << endl;
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}