簡體   English   中英

C++ 旋轉 3x3 網格由 9 個字符的字符數組組成?

[英]C++ Rotate 3x3 grid made of 9 character char array?

我有一個看起來像這樣的網格

X . .
. . .
. . .

由字符數組制成,我將如何向左或向右旋轉 90 度? 看起來像

. . X
. . .
. . .

右旋90度后

向左或逆時針方向旋轉矩陣:-

  1. 求矩陣的轉置。
  2. 反轉轉置的列。

讓給定的矩陣是

a b c
d e f
g h i

首先我們找到轉置。

a d g
b e h
c f i

然后我們反轉每一列的元素。

c f i
b e h
a d g

向右或順時針方向旋轉矩陣:-

  1. 求矩陣的轉置。
  2. 反轉轉置的行。

讓給定的矩陣是

a b c
d e f
g h 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; 
        } 
    } 
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM