求助,求大佬帮忙看看哪里错了
查看原帖
求助,求大佬帮忙看看哪里错了
534582
lin_ac楼主2021/11/16 15:08
#include<iostream> 
using namespace std;

int arr[510][510];
int tmp[510][510];

void raotate_c(int x,int y,int r){      //顺时针转
    int n=x+r,m=y+r;
    for(int i=x-r;i<=x+r;i++){
        for(int j=y-r;j<=y+r;j++){
            tmp[j][n-i-1]=arr[i][j];
        }
    }
    for(int i=x-r;i<=x+r;i++){
        for(int j=y-r;j<=y+r;j++){
            arr[i][j]=tmp[i][j];
        }
    }
}

void raotate_r(int x,int y,int r){      //逆时针转
    int n=x+r,m=y+r;
    for(int i=x-r;i<=x+r;i++){
        for(int j=y-r;j<=y+r;j++){
            tmp[m-j-1][i]=arr[i][j];
        }
    }
    for(int i=x-r;i<=x+r;i++){
        for(int j=y-r;j<=y+r;j++){
            arr[i][j]=tmp[i][j];
        }
    }
}

int main(){
    int n,m,cnt=1;
    cin>>n>>m;
    for(int i=0;i<n;i++){       //输入数组
        for(int j=0;j<n;j++){
            arr[i][j]=cnt;
            cnt++;
        }
    }
    for(int i=0;i<m;i++){       //开始旋转
        int x,y,r,z;
        cin>>x>>y>>r>>z;
        if(z==0){
            raotate_c(x,y,r);
        }
        else{
            raotate_r(x,y,r);
        }
    }
    for(int i=0;i<n;i++){           //输出
        for(int j=0;j<n;j++){
            cout<<arr[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
2021/11/16 15:08
加载中...