学会了蛇形矩阵

蛇形矩阵

a,b为提前算出下一次的坐标x,y,如果越界就改变方向用xaxis【】和yaxis【】

很妙,数组依次为上右下左方向

3 3为例

9赋值后,方向向右,右边已经赋值,故方向开始向下,向9的下边赋值,此时

当i>n*m=9时就不能为坐标赋值了停止循环

复制代码
#include<stdio.h>
int main()
{

    int n=0,m=0;
    int s[110][110];
    scanf("%d %d",&n,&m);
    int x=0,y=0,a=0,b=0;
    int xaixs[]={-1,0,1,0};
    int yaixs[]={0,1,0,-1};
    int d=1;
    for(int i=1;i<=m*n;i++)
    {

        s[x][y]=i;
        a=x+xaixs[d];
        b=y+yaixs[d];
        if(a<0||a>=n||b<0||b>=m||s[a][b])
        {
            d=(d+1)%4;
            a=x+xaixs[d];
            b=y+yaixs[d];
        }
        x=a;
        y=b;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            printf("%d ",s[i][j]);
        }
        printf("\n");
    }
    return 0;
}
相关推荐
西贝爱学习7 分钟前
Visual Studio下载地址,vs2022安装程序
c++
黎茗Dawn9 分钟前
DDPM-KL 散度与 L2 损失
人工智能·算法·机器学习
天赐学c语言9 分钟前
12.5 - 二叉树的最近公共祖先 && 构造函数和析构函数可以是虚函数吗
c++·二叉树·虚函数
wearegogog12310 分钟前
DEA模型MATLAB实现(CCR、BCC、超效率)
开发语言·算法·matlab
业精于勤的牙16 分钟前
浅谈:快递物流与算法的相关性(四)
算法
闻缺陷则喜何志丹17 分钟前
【计算几何】P2785 物理1(phsic1)- 磁通量|普及+
c++·数学·计算几何
郝学胜-神的一滴19 分钟前
Linux定时器编程:深入理解setitimer函数
linux·服务器·开发语言·c++·程序人生
一水鉴天22 分钟前
专题讨论 类型理论和范畴理论之间的关系 之2 整体设计中的“闭” 解题和“位”问题 (ima.copilot)
线性代数·矩阵·mvc
ghie909022 分钟前
MATLAB自适应子空间辨识工具箱
数据结构·算法·matlab
过河卒_zh156676622 分钟前
算法备案最新通知:26年1月批备案号发放名单已锁定,发放前的复审抽审已开始
人工智能·算法·aigc·算法备案