编写一个 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

更新时间:2020 年 4 月 20 日

961 次浏览

加速您的 职业

通过完成课程获取认证

开始学习
广告