21xrx.com
2024-09-20 00:22:43 Friday
登录
文章检索 我的文章 写文章
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度的操作。该算法可以便利地应用于多个应用场景,例如图像旋转和数据处理等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复