其他分享
首页 > 其他分享> > 5.回型取数

5.回型取数

作者:互联网

#include <iostream>
#include <string.h>

using namespace std;

int n,m;
bool st[210][210];
int arr[210][210];


int main(){
     cin>>n>>m;
     for(int i=0;i<n;i++){
         for(int j=0;j<m;j++){
             cin>>arr[i][j];
         }
     }
     
     int dx[]={1,0,-1,0},dy[]={0,1,0,-1};  //4个方向的偏移量
     for(int x=0,y=0,d=0,k=1;k<=n*m;k++)
     {
         if(x==0&&y==0) cout<<arr[x][y];
         else cout<<" "<<arr[x][y];
         st[x][y]=1;
         int a=x+dx[d],b=y+dy[d]; //走一步
         if(a<0||a>=n||b<0||b>=m||st[a][b]==1) //越界或者走的这个点已经走过了
         {
             d=(d+1)%4; //换方向
             a=x+dx[d],b=y+dy[d]; //走一步
         }
         x=a,y=b; //当前走到的位置
        
     }

   
    return 0;
}

//蛇形矩阵!!

标签:arr,210,int,取数,回型,dx,dy,include
来源: https://blog.csdn.net/qq_43600063/article/details/123603146