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;
}

结语

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


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

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

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


相关推荐
杨福瑞27 分钟前
数据结构:单链表(2)
c语言·开发语言·数据结构
GilgameshJSS1 小时前
STM32H743-ARM例程38-UART-IAP
c语言·arm开发·stm32·单片机·嵌入式硬件
黑屋里的马2 小时前
java的设计模式之桥接模式(Bridge)
java·算法·桥接模式
sin_hielo2 小时前
leetcode 1611
算法·leetcode
李小白杂货铺2 小时前
识别和破除信息茧房
算法·信息茧房·识别信息茧房·破除信息茧房·算法推荐型茧房·观点过滤型茧房·茧房
老兵发新帖2 小时前
【一、基础篇】自注意力机制中的 Q,K、V 矩阵是什么缩写?
线性代数·矩阵
小蜜蜂爱编程2 小时前
矩阵的运算
线性代数·矩阵
小蜜蜂爱编程2 小时前
矩阵的运算(二)
线性代数·矩阵
_李小白2 小时前
【OPENGL ES 3.0 学习笔记】第十七天:模型矩阵、视图矩阵与投影矩阵
笔记·学习·矩阵
来荔枝一大筐3 小时前
C++ LeetCode 力扣刷题 541. 反转字符串 II
c++·算法·leetcode