1 条题解

  • 0
    @ 2023-5-22 13:53:27
    /*
    这个问题其实就是矩阵转置后,再把每一行进行反转。
    
    先简述一下思路:
    
    首先我们需要输入图像,可以使用一个二维数组来表示这个图像。
    
    旋转图像,就相当于将二维数组进行转置。在转置后的矩阵中,第i行第j列的元素在原矩阵中是第j行第i列的。
    
    转置后的矩阵还需要把每一行反转一下,这样就完成了旋转90度的操作。
    
    输出转置和反转后的矩阵,即为最终结果。
    
    以下是一个实现这个思路的C++代码:
    
    */
    #include<iostream>
    using namespace std;
    
    int main(){
        int n, m;
        cin >> n >> m;
        int image[n][m];
        // 输入图像
        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++)
                cin >> image[i][j];
    
        // 旋转图像:先转置再反转每一行
        int rotated[m][n];
        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++)
                rotated[i][j] = image[n-1-j][i];
    
        // 输出旋转后的图像
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++)
                cout << rotated[i][j] << " ";
            cout << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    252
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    3
    已通过
    1
    上传者