C语言蛇形矩阵

文章目录

每日一言

山有榛,隰有苓。云谁之思?西方美人。 --邶风·简兮


题目

解题思路

话不多说,直接看图

通过观察图表,我想到了这种方法:

我将数字放置的位置分为两大类:向右走和向左走

每大类里又分为3小类:

  1. 向左走:(1)能往左下往左下(2)左下不行向下移(3)下移不行向右移
  2. 向右走:(1)能往右上往右上(2)右上不行向右移(3)右移不行向下移

知道思路代码就很好写了

全部代码

c 复制代码
#include <stdio.h>

int main() 
{
    int n=0;
    scanf("%d",&n);
    int arr[n][n];
    int i=0,j=0,k=0;
    int f=0;//判断移动方向,0右,1左
    arr[0][0]=1;
    
    for(k=1;k<n*n;k++)
    {
        if(f)//左
        {
            if(i+1<n&&j-1>=0)//左下合理
            {
                arr[i+1][j-1]=arr[i][j]+1;
                i++;
                j--;
            }
            else //左下不合理
            {
                if(i+1<n)//下移合理
                {
                    arr[i+1][j]=arr[i][j]+1;
                    i++;
                }
                else //下移不行,向右移
                {
                    arr[i][j+1]=arr[i][j]+1;
                    j++;
                }
                    f=0;
            }
        }
        else //右
        {
            if(i-1>=0&&j+1<n)//右上合理
            {
                arr[i-1][j+1]=arr[i][j]+1;
                i--;
                j++;
            }
            else//右上不合理
            {
                if(j+1<n)//右移合理
                {
                    arr[i][j+1]=arr[i][j]+1;
                    j++;
                }
                else //右移不行,向下移
                {
                    arr[i+1][j]=arr[i][j]+1;
                    i++;
                }
                    f=1;
            }
        }
    }

	//打印
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


相关推荐
复杂网络1 小时前
论最小 Agent 计算机的形态
算法
kisshyshy16 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
猿人谷1 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络1 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络1 天前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4001 天前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4001 天前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法
JieE2122 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2123 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack204 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法