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