我不知道如何将整个桌子旋转 90 度。所以如果我有一个如下所示的二维数组
{
{0,0,1,0}
,{0,1,1,0}
,{0,1,0,0}
,{0,0,0,0}
}
最好将该数组的整个表格旋转或转置 90 度。所以旋转后应该是这样的
{
{0,0,0,0}
,{0,1,1,0}
,{0,0,1,1}
,{0,0,0,0}
}
我们将第一个数组称为 A,将第二个数组称为 B。
请注意,数组 A 中的一列成为旋转数组 B 中的一行(A 中的第一列成为 B 中的第一行等),并且 A 中第一列的第一个元素成为 B 中第一行的最后一个元素,第二个元素成为第三,第三变成第二等等...
所以我认为代码应该是这样的:
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
B[j][N-1-i] = A[i][j];
}
} // where N is the size of your array
我的“解释”可能有点令人困惑,但我希望代码能够工作。
假设数组 A 的大小为 NxN,如果数组不是正方形,但大小为 NxM,则 B 数组的大小为 MxN,代码中唯一更改的是:
for(int j = 0; j < M; j++)
在第二个“为”