C++ C++;旋转由9个字符字符数组组成的3x3网格?
我有一个网格,看起来像这样C++ C++;旋转由9个字符字符数组组成的3x3网格?,c++,C++,我有一个网格,看起来像这样 X . . . . . . . . 由一个字符数组制成,我如何将其向左或向右旋转90度? 看起来像 . . X . . . . . . 右旋转90度后,向左或逆时针旋转矩阵:- 求矩阵的转置 反转转置的列 设给定的矩阵为 a b c d e f g h i a b c d e f g h i 首先我们找到转置 a d g b e h c f i a d g b e h c f i 然后我们反转每列的元素 c f i b e h a d g 向右或顺时针旋
X . .
. . .
. . .
由一个字符数组制成,我如何将其向左或向右旋转90度?
看起来像
. . X
. . .
. . .
右旋转90度后,向左或逆时针旋转矩阵:-
a b c
d e f
g h i
a b c
d e f
g h i
首先我们找到转置
a d g
b e h
c f i
a d g
b e h
c f i
然后我们反转每列的元素
c f i
b e h
a d g
向右或顺时针旋转矩阵:-
a b c
d e f
g h i
a b c
d e f
g h i
首先我们找到转置
a d g
b e h
c f i
a d g
b e h
c f i
然后我们反转每一行的元素
g d a
h e b
c f i
解决此问题的代码
void rotate90Clockwise(char a[N][N])
{
// Traverse each cycle
for (int i = 0; i < N / 2; i++) {
for (int j = i; j < N - i - 1; j++) {
// Swap elements of each cycle
// in clockwise direction
char temp = a[i][j];
a[i][j] = a[N - 1 - j][i];
a[N - 1 - j][i] = a[N - 1 - i][N - 1 - j];
a[N - 1 - i][N - 1 - j] = a[j][N - 1 - i];
a[j][N - 1 - i] = temp;
}
}
}
void顺时针旋转90(字符a[N][N])
{
//遍历每个循环
对于(inti=0;i
观察每个索引的转换,你会很高兴看到你能展示你已经编写的程序,并解释你的程序到底是如何无法工作或无法产生预期结果的?你必须先展示你的作品;它必须满足a的所有要求;在向stackoverflow.com寻求帮助之前,必须真诚地尝试实现您的程序,而不是几行代码。在这里,我们不为其他人编写完整的程序。有关更多信息,请参阅问题、记录并阅读。