請用C++實現 8*8 陣列數值順時針旋轉90度
时间: 2023-08-06 09:07:23 浏览: 27
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int arr[8][8] = { {1,2,3,4,5,6,7,8},
{9,10,11,12,13,14,15,16},
{17,18,19,20,21,22,23,24},
{25,26,27,28,29,30,31,32},
{33,34,35,36,37,38,39,40},
{41,42,43,44,45,46,47,48},
{49,50,51,52,53,54,55,56},
{57,58,59,60,61,62,63,64} };
int temp[8][8]; // 用于存储旋转后的矩阵
// 首先将原矩阵顺时针转置
for(int i=0; i<8; i++)
{
for(int j=0; j<8; j++)
{
temp[i][j] = arr[j][i];
}
}
// 然后将转置后的矩阵每行逆序
for(int i=0; i<8; i++)
{
for(int j=0; j<4; j++)
{
swap(temp[i][j], temp[i][7-j]);
}
}
// 输出旋转后的矩阵
for(int i=0; i<8; i++)
{
for(int j=0; j<8; j++)
{
cout << temp[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
输出结果为:
```
57 49 41 33 25 17 9 1
58 50 42 34 26 18 10 2
59 51 43 35 27 19 11 3
60 52 44 36 28 20 12 4
61 53 45 37 29 21 13 5
62 54 46 38 30 22 14 6
63 55 47 39 31 23 15 7
64 56 48 40 32 24 16 8
```