王旭·wangxu_a 2024-12-18 21:45 采纳率: 100%
浏览 13
已结题

!!求改图像旋转!!

描述

输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。

输入描述

第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。
接下来n行,每行m个整数,表示图像的每个像素点灰度。
相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。

输出描述

输出 m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。

**用例输入 1 **

3 3
1 2 3
4 5 6
7 8 9

**用例输出 1 **

7 4 1
8 5 2
9 6 3

#include <bits/stdc++.h>
using namespace std;
int main() {
int a,b;
    cin>>a>>b;
    int x[a+1][b+1];
    for(int i=1;i<=a;i++){
        for(int j=1;j<=b;j++){
            cin>>x[i][j];
        }
    }
    for(int i=1;i<=3;i++){
        for(int j=3;j>=1;j--){
            cout<<x[j][i]<<' ';
        }
        cout<<endl;
    }
 return 0;
}
/*
IN
a[1][1] a[1][2] a[1][3]
a[2][1] a[2][2] a[2][3]
a[3][1] a[3][2] a[3][3]
OUT
a[3][1] a[2][1] a[1][1]
a[3][2] a[2][2] a[1][2]
a[3][3] a[2][3] a[1][3]
*/

哪错了?

  • 写回答

2条回答 默认 最新

  • micthis 2024-12-18 22:28
    关注
    #include <bits/stdc++.h>
    using namespace std;
    int main() {
    int a,b;
        cin>>a>>b;
        int x[a+1][b+1];
        for(int i=1;i<=a;i++){
            for(int j=1;j<=b;j++){
                cin>>x[i][j];
            }
        }
        for(int i=1;i<=b;i++){
            for(int j=a;j>=1;j--){
                if(j!=a)
                    cout<<" ";
                cout<<x[j][i];
            }
            cout<<endl;
        }
     return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月18日