蛇形填数的三种类型

article/2025/10/5 1:07:11

目录

一、三角形蛇形填数

(1)原理

(2)执行程序

(3)运行结果

二、螺旋形蛇形填数

(1)原理

(2)执行程序

(3)运行结果

三、s形蛇形填数

(1)原理

(2)执行程序

(3)运行结果


一、三角形蛇形填数

(1)原理

 

 1、观察图找规律,会发现,在二维数组中第一行,偶数列0、2、4时,数值由左下到右上增加,奇数列1、3、5,数值由右上到左下增加。

2、如何实现奇数列、偶数列的对角一样的数值增加? 

   二维数组中a[x][y]  想象为xy坐标轴

(1)偶数列时,从左下到右上,x逐渐减小x--,y逐渐增加y++,每次循环增加的值的个数为x+1;如:x为2时,此次循环有三个值。偶数列是从第一列开始,循环开始初始值,x=i,y=0。循环结束条件是 x--,直到x=0,到达第一行

(2)奇数列时,从右上到左下,x逐渐增大x++,y逐渐减小y--,每次循环增加的值的个数为y+1; 奇数列是从第一个行开始,循环开始初始值,x=0,y=i; 结束条件是:y--,直到y=0,到达第一列。

(2)执行程序

#include<stdio.h>
int main()
{int i=0;int n=0; int num=1;            //第一个数为1int a[100][100]={0};  //自定义一个二维数组的大小scanf("%d",&n);       //自定义一个几乘几大小的矩阵for(i=0;i<n;i++)      // 执行循环n次{if(i%2==0)         //判断是偶数还是奇数{int x=i;       int y=0;while(x+1){a[x][y]=num;num++;y++;x--;}}else{int x=0;int y=i;while(y+1){a[x][y]=num;num++;x++;y--;}}}//打印矩阵int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){printf("%-3d ", a[i][j]);}printf("\n");}return 0;
}

(3)运行结果

 

二、螺旋形蛇形填数

(1)原理

 螺旋形,每一次循环都是经过下图的方式:

 

每次循环分为四个部分:

第一部分:列y=(n-1-i )不变,行x=i到 x=(n-2-i)增加

第二部分:行x=(n-1-i)不变,列y=(n-1-i)减小到 y=i+1;

第三部分:列y=i不变;行x=(n-1-i)减小到x=i+1;

第四部分:行x=i不变;列y=i增加到y=(n-2-i);

注意:

1、需要要进行螺旋形填充,只需进行n/2次循环。

2、既然进行n/2次循环,就需要判断n是奇数还是偶数

当n为偶数时,循环结束正好填满矩阵,当n为奇数时,最中间的位置最后需要单独填充

3、在数组中,n为偶数时,在数组的下标为n-1为奇数(下标为奇数但矩阵中为偶数),

所以n为奇数时,下标为偶数,最后进行填充时a[n/2][n/2]=num; 【下标 n/2在数组中为中间位置   (n/2结果取整数),在矩阵中,中间位置为下标加1,n/2+1,,,所有运算是在数组中进行,写这些是为了便于理解。】

(2)执行程序

#include<stdio.h>
int main()
{int n = 0;int a[100][100] = { 0 };scanf("%d", &n);           int i = 0;int num = 1;for(i=0;i<n/2;i++)       //控制循环次数         {int x=i;              //定义xy的起始位置int y=n-1-i;for(x=i;x<=n-2-i;x++){a[x][y]=num;num++;}for(y=n-1-i;y>=i+1;y--){a[x][y]=num;num++;}for(x=n-1-i;x>=i+1;x--){a[x][y]=num;num++;}for(y=i;y<=n-2-i;y++){a[x][y]=num;num++;}}if(n%2!=0)                 //n为奇数时最中间的位置填充a[n/2][n/2]=num;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){printf("%-3d ", a[i][j]);}printf("\n");}return 0;
}

(3)运行结果

 

三、s形蛇形填数

(1)原理

 1、观察图,偶数列0、2、4数值依次向下增加,奇数列1、3、5数值依次向上增加

2、二维数组中,偶数列时,循环初始条件,x=0,y=i,结束条件,x=n-1,此时到达最后一行下标值为n-1。奇数列时、循环初始条件,x=n-1,y=i,结束条件,x=0

(2)执行程序

#include<stdio.h>
int main()
{int n = 0;int a[100][100] = { 0 };scanf("%d", &n);            //输入需要填充的数组的大小,arr[n][n]int i = 0;int num = 1;for (i = 0; i < n; i++)      //需要打印n列数字{if (i % 2 == 0)         //偶数列填充{int x = 0;int y = i;for (x = 0; x <=n-1; x++)  {a[x][y] = num;num++;}}else                  //奇数列填充{int x = n - 1;    //下标值为n-1,也就是最后一行int y = i;for (x = n - 1; x >= 0; x--){a[x][y] = num;num++;}}}int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){printf("%-3d ", a[i][j]);}printf("\n");}return 0;
}

(3)运行结果

 以上为自己理解,如有错误欢迎指正,共同学习!


http://chatgpt.dhexx.cn/article/l8rrHYmK.shtml

相关文章

Vcpkg使用方法

概观 Vcpkg可帮助您管理Windows&#xff0c;Linux和MacOS上的C和C 库。这个工具和生态系统在不断发展; 您的参与对其成功至关重要&#xff01; 开始 使用管理员身份打开powershell后&#xff0c;依次执行以下指令 git clone https://github.com/Microsoft/vcpkg.git cd vcp…

Windows 下使用 vcpkg + CMake 进行开发

Windows 下使用 vcpkg CMake 进行开发 vcpkg vcpkg 是一款开源的、基于源代码的 C 依赖管理器。简单地说&#xff0c;用户可以使用 vcpkg 安装自己需要的 C 依赖。 将 vcpkg 的整个仓库克隆在本地&#xff0c;再执行提供的脚本&#xff0c;即可完成 vcpkg 的部署&#xff0…

windows安装vcpkg过程下载失败问题的解决方法

vcpkg的中文文档&#xff1a;https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md 第一步&#xff1a; 从GitHub拉取 git clone https://github.com/Microsoft/vcpkg.git 如果GitHub拉取超时可以运行下面两行代码解决 git config --global --unset http.proxy …

【配置环境】Windows和Linux下安装和使用C/C++第三方库管理工具vcpkg

目录 一&#xff0c;环境准备 二&#xff0c;vcpkg简介 三&#xff0c;Window系统下载vcpkg 四&#xff0c;Linux系统下载vcpkg 五&#xff0c;vcpkg命令介绍 1.命令参照表 2.常用的vcpkg命令以及详细解释 一&#xff0c;环境准备 Git - Downloads 根据平台下载最新版本…

vcpkg:使用 vcpkg

命令 查看Vcpkg支持的开源库列表 查看Vcpkg支持的开源库列表 .\vcpkg\vcpkg search安装一个开源库 这里的“安装”其实是指下载和编译。 比如我们需要安装常用的jsoncpp库&#xff0c;那么执行命令 .\vcpkg\vcpkg install jsoncpp输出 Computing installation plan... A …

【vcpkg】vcpkg:用于 Windows、Linux 和 macOS 的 C++ 包管理器

官网:https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?viewmsvc-160&viewFallbackFromvs-2019 vcpkg vcpkg 是用于 C 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。 如果项目要使用第三方库&#xff0c;建议通过 vcpkg 来…

在Visual Studio中激活vcpkg环境

在Visual Studio 2022 17.4中&#xff0c;vcpkg环境现在会自动激活。 一个vcpkg环境是由一个manifest文件描述的&#xff0c;该文件捕获了构建应用程序所必需的工件&#xff08;了解更多关于vcpkg工件的信息&#xff09;。 当前vcpkg工件的体验主要是针对嵌入式开发人员&…

Visual Studio工具 vcpkg简介

vcpkg是命令行包管理工具&#xff0c;在使用第三方库的c或c开发中可以简化相关的配置操作。vcpkg安装的包支持Visual Studio 2015 update 3及以上版本&#xff0c;包括vs2017工具集&#xff0c;目前在windows平台已有超过900多个包&#xff0c;linux平台超过350个包。在默认情况…

windows 下包管理工具vcpkg安装

主要参考博文&#xff1a;vcpkg安装及使用_我叫电池的博客-CSDN博客_vcpkg安装 由于需要在离线环境下面搭建开发环境&#xff0c;所有的包只能离线安装了&#xff0c;包括这个管理工具vcpkg的安装&#xff0c;也必须是离线安装。 一. 下载安装vcpkg管理工具 下载目录&#x…

Vcpkg介绍及使用

Vcpkg用于在Windows、Linux、Mac上管理C和C库&#xff0c;极大简化了第三方库的安装&#xff0c;它由微软开源&#xff0c;源码地址&#xff1a;https://github.com/Microsoft/vcpkg&#xff0c;最新发布版本为2023.04.15 Release&#xff0c;它的license为MIT。 在windows上安…

Vcpkg C/C++库管理工具安装和使用教程(链接VS2019)

1、概述&#xff1a; Vcpkg是可用于Windows&#xff0c;linux和MacOS上跨平台的 C/C 库管理工具&#xff0c;是一款开源工具。在此对vcpkg的安装做一个简要的说明&#xff0c;有关具体命令的使用&#xff0c;在安装成功后使用 vcpkg help 或者 vcpkg help[comment] 可以获取特…

vcpkg安装及使用

vcpkg安装及使用 参考链接 1. 安装 内容复制自官方文档 首先&#xff0c;请下载vcpkg并执行 bootstrap.bat 脚本。 它可以安装在任何地方&#xff0c;但是通常我们建议您使用 vcpkg 作为 CMake 项目的子模块&#xff0c;并将其全局安装到 Visual Studio 项目中。我们建议您使…

vcpkg安装指定版本的库

由于fmt版本过高&#xff0c;部分依赖其的库使用时会报错&#xff08;错误 C2338 Cannot format an argument. To make type T formattable provide a formatter<T> specialization&#xff09;。 vcpkg install fmt:x64-windows 默认装的是fmt9.1.0&#xff0c;但是…

vcpkg基本使用

1. vcpkg安装 将下列powershell代码存成ps1文件&#xff0c;在目录下shift右键->打开power shell窗口&#xff0c;运行脚本后vcpkg即安装完成。 # 1. 创建目录、下载vcpkg&#xff1a; mkdir -f D:/APPs cd D:/APPs # github # git clone https://github.com/microsoft/vc…

Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库

利用Vcpkg轻松集成开源第三方库 1. 为什么要用Vcpkg 1.1. 传统使用开源库的方法 1.1.1. 编译工具1.1.2. 编译类型1.1.3. 工程目录设定 1.2. Vcpkg的优点 2. 获取Vcpkg 2.1. 下载Vcpkg2.2. 编译Vcpkg 3. 使用Vcpkg 3.1. 查看Vcpkg支持的开源库列表3.2. 安装一个开源库3.3. 指定编…

VCPKG安装和使用教程

文章目录 1. 安装2. 使用命令选项 3. 集成vcpkgWindows 上的 Visual Studio 集成Linux 或 macOS 上的 Visual Studio Code 集成删除 vcpkg 集成 使用举例4. 详细介绍4.1 新增库4.2 删除库4.3 查看已经安装的列表4.4 更新已经安装的开源库 1. 安装 去GitHub上下载源码&#xff…

vcpkg快速入门手册

文章目录 1. 简介2. 安装与使用2.1 获取vcpkg2.2 编译vcpkg2.3 vcpkg的文件夹层次结构2.4 设置vcpkg的环境变量2.5 vcpkg的常用命令2.6 安装包与Visual Studio集成 3. 常见的C库的CMake配置方式3.1 Boost3.2 cereal3.3 Ceres Solver3.4 CGAL3.5 FLANN3.6 GDAL3.7 GLEW3.8 GMP3.…

vcpkg安装和使用--学习入门

前言 vcpkg是一个C的包管理器。 包管理器是专门管理一些代码库的。比如一些大佬们开源的一些NB的框架&#xff0c;我们可以用vcpkg将他们放到自己的项目中。然后就可以直接用了。 我用的win10vs2019 【1】安装 &#xff08;1&#xff09;先git clone下载下来vcpkg文件夹。 …

Vcpkg 的安装与使用

Vcpkg 的安装与使用 欢迎大家来我的博客逛逛&#x1f44f;&#xff1a;hauhau.cn 需求 先确保你已经安装了: Windows7 及以上的版本GitVisual Studio 2015 Update 3 及以上的版本 关于美化 Windows Terminal 及 Powershell&#xff0c;可以查看这篇优秀文章: Windows-Termi…

C++第三方库管理工具vcpkg使用教程

目录 一、vcpkg介绍二、vcpkg安装1、安装vs英语语言包2、更新PowerShell版本3、配置终端4、clone vcpkg 三、vcpkg具体使用1、演示安装jsoncpp库2、指定位数安装3、查找支持的系统架构4、查看已经安装了哪些库5、如何卸载vcpkg 四、如何集成到visual studio1、集成到Visual Stu…