21xrx.com
2025-04-14 13:05:23 Monday
文章检索 我的文章 写文章
C++ 实现数组顺时针旋转 90 度
2023-07-05 08:47:18 深夜i     --     --
C++ 数组旋转 顺时针 90度

C++是一门广泛使用的编程语言,适用于多种场景。在这篇文章中,我们将介绍如何使用C++实现数组顺时针旋转90度的功能。

首先,我们需要创建一个数组以存储数据。这个数组可以是一个二维数组,其中每个元素都包含一个值。我们可以使用for循环来逐行读取该数组,并将每行的元素存储在一个新的数组中。

接下来,我们将遍历这个新的数组,并将其转换为原数组的90度旋转版本。为了实现这个操作,我们需要创建一个新的数组,其中行和列的数量与原数组的相反。

然后,我们将填充新数组,原数组中的第一列将成为新数组的最后一行。我们可以使用for循环来遍历原数组中的每个元素并将其写入新数组的正确位置。

最后,我们可以使用嵌套for循环来打印新数组,这将显示原数组顺时针旋转90度的版本。

以下是完整的C++代码实现:

#include <iostream>
using namespace std;
int main() {
  int m,n;  //定义行、列变量
  cout<< "请输入矩阵的行数和列数:"<<endl;
  cin>>m>>n;
  int arr[m][n]; //定义原数组
  cout<< "请输入矩阵的各个元素:"<<endl;
  for(int i=0;i<m;i++) {
    for(int j=0;j<n;j++) {
      cin>>arr[i][j]; //逐行读取原数组
    }
  }
  int newArr[n][m]; //定义新数组,行数为原数组的列数,列数为原数组的行数
  //将原数组逆时针旋转90度,并存储到新数组中
  for(int i=0;i<n;i++) {
    for(int j=0;j<m;j++) {
      newArr[i][j]=arr[m-j-1][i];
    }
  }
  cout<<endl<< "原矩阵:"<<endl;
  for(int i=0;i<m;i++) {
    for(int j=0;j<n;j++) {
      cout<< arr[i][j]<< " ";
    }
    cout<<endl;
  }
  cout<<endl<< "顺时针旋转90度后的矩阵:"<<endl;
  for(int i=0;i<n;i++) {
    for(int j=0;j<m;j++) {
      cout<<newArr[i][j]<< " ";
    }
    cout<<endl;
  }
  return 0;
}

通过这个例子,我们可以看到如何使用C++实现数组顺时针旋转90度的操作。该算法可以便利地应用于多个应用场景,例如图像旋转和数据处理等。

  
  

评论区