尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

c语言 蛇形方阵

c语言 蛇形方阵 题目描述输入整数n输出n阶顺时针螺旋方阵从1开始向内填充数字核心思路1.用方向数组dx[ ],dy[ ] 保存4个移动的方向右-下-左-上2.从左上角00开始填数一共填入n*n个数字3.预判下一步位置如果越界或者格子已经填过数字就顺时针转弯4.转弯后重新计算下一步坐标继续循环填数完整代码#includestdio.h#includestring.hintmain(){intn;inta[15][15];//方向左下右上intdx[]{0,1,0.-1};intdy[]{1,0,-1,0};inti,j,x,y,d,nx,ny;scanf(%d,n);memset(a,0,sizeof(a));//数组清零x0,y0,d0;//起点初始方向向右for(i1;in*n;i){a[x][y]i;nxxdx[d];nyydy[d];//越界或者下一格已有数字则转弯ifnx0||nxn||ny0||nyn||a[nx][ny]!0){d(d1)%4;//顺时针转弯%4循环方向nxxdx[d];nyydy[d];}xnx;yny;}//打印方阵for(i0;in;i){for(j0;jn;j){printf(%3d,a[i][j]);}printf(\n);}return0;}知识点总结1.方向数组dx,dydx是行变化dy是列变化。d取0-3对应4个方向迷宫矩阵遍历通用模板2.memset清零memset(a,0,sizeof(a));一次性清空二维数组3.转弯 d(d1)%4d1切换到下一个方向右转%4限制d只能0123实现循环4.越界判断nx0||nxn||ny0||nyn||a[nx][ny]!0顺序不能颠倒先判断坐标越界再读取数组否则RE运行错误
返回列表