编写一个 C++ 程序来反转一个数组或字符串
在这里,我们提供了一个数组或字符串。我们将创建一个程序来反转数组或字符串的元素。
我们举一个例子来了解一下这个问题,
输入
array = {2, 5, 7, 1, 9}
输出
{9, 1, 7, 5, 2}
输入
string = “Hello!”
输出
!0lleH
为了创建一个程序,我们将循环数组或字符串的元素(两者以相同的方式工作)。使用一个变量作为起始值,另一个变量作为结尾值。然后交换这两个元素。令起始变量加 1,结束变量减 1。交换将持续到起始变量的值小于结束变量的值为止。
可以创建两种程序,一种是迭代程序,另一种是递归程序。我们将创建的程序演示两种方法的工作原理。
示例
方法 1:迭代法
Program : #include <iostream> using namespace std; void revereseArrayIt(int arr[], int start, int end){ while (start < end){ int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } int main() { int arr[] = {6, 9, 1, 4, 0, 5}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"Orignal Array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; revereseArrayIt(arr, 0, n-1); cout << "Reversed array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; return 0; }
输出
Orignal Array : 6 9 1 4 0 5 Reversed array : 5 0 4 1 9 6
示例
方法 2:递归法
#include <iostream> using namespace std; void revereseArrayRec(int arr[], int start, int end){ if(start >= end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; revereseArrayRec(arr,start+1, end-1); } int main() { int arr[] = {6, 9, 1, 4, 0, 5}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"Orignal Array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; revereseArrayRec(arr, 0, n-1); cout << "Reversed array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; return 0; }
输出
Orignal Array : 6 9 1 4 0 5 Reversed array : 5 0 4 1 9 6
广告