题解 | #C翻转#

C翻转

https://www.nowcoder.com/practice/a591300637874f6ba2316a5fe3e94579

#include <bits/stdc++.h>
using namespace std;

int m[10][10],ba[10][10];
int a,b,x,y;

int main() {
    for(int i=1; i<=5; i++){
        for(int j=1; j<=5; j++){
            cin>>m[i][j];
        }
    }
    memcpy(ba,m,sizeof(m));
    cin>>a>>b>>x>>y;
    // a=1顺时针 a=2逆时针
    if(a == 1){
        for(int i=x; i<x+b;i++){
            for(int j=y; j<y+b; j++){
                m[j-y+x][(b-1)-(i-x)+y] = ba[i][j];
            }
        }
    }else{
        for(int i=x; i<x+b;i++){
            for(int j=y; j<y+b; j++){
                m[(b-1)-(j-y)+x][i-x+y] = ba[i][j];
            }
        }
    }
    for(int i=1; i<=5; i++){
        for(int j=1; j<=5; j++){
            cout<<m[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务