复制一个矩阵和旋转一个箭头矩阵90度超过一次在c

0sgqnhkj  于 2022-12-22  发布在  其他
关注(0)|答案(1)|浏览(104)

嘿,我想复制一个箭头矩阵到另一个矩阵,并旋转90度顺时针方向的箭头。我设法从指向3旋转到6,但当我试图再次旋转到9,它回到3。
我认为问题是我需要从最后开始先看完整个专栏,但不确定如何做

#include <stdio.h>
#include <string.h>
void DisplayArray2D(char arr[][7]);
void RotateArray2D(char arrRotated[][7], char arrOriginal[][7]);

void main() {
    char arr[7][7] = {
        { '*',' ',' ',' ',' ',' ',' '},
        { '*','*',' ',' ',' ',' ',' '},     
        { '*','*','*',' ',' ',' ',' '},
        { '*','*','*','*','*','*','*'},
        { '*','*','*',' ',' ',' ',' '},
        { '*','*',' ',' ',' ',' ',' '},
        { '*',' ',' ',' ',' ',' ',' '},
};
char arr6[7][7];
char arr9[7][7];

DisplayArray2D(arr);
RotateArray2D(arr6,arr);
DisplayArray2D(arr6);
RotateArray2D(arr9,arr6);
DisplayArray2D(arr9);

}

void DisplayArray2D(char arr[][7]){
    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j < 7; j++)
        {
        printf("%c",arr[i][j]);
        }
    printf("\n");
    }
}

void RotateArray2D(char arrRotated[][7], char arrOriginal[][7]){
    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            arrRotated[j][i] = arrOriginal[i][j];
        }
    }
    // DisplayArray2D(arrRotated);
}
nbewdwxp

nbewdwxp1#

谢谢你们,你们的评论真的很有帮助。事实上,为了正确地旋转,我错过了函数中的[6-i]。

相关问题