NOI / 1.8编程基础之多维数组 提问24:蛇形填充数组 c语言

描述

用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。

蛇形填充方法为:

对于每一条左下-右上的斜线,从左上到右下依次编号1,2,...,2n-1;按编号从小到大的顺序,将数字从小到大填入各条斜线,其中编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。

比如n=4时,方阵填充为如下形式:

1  2  6  7
3  5  8  13
4  9  12 14
10 11 15 16

输入

输入一个不大于10的正整数n,表示方阵的行数。

输出

输出该方阵,相邻两个元素之间用单个空格间隔。

样例输入

4

样例输出

1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
#include<stdio.h>
int main(){int row,col; // 定义行数和列数变量int x[101][101]={0}; // 定义一个101*101的二维数组,并初始化为0scanf("%d %d",&row,&col); // 输入行数和列数for(int i=1;i<=row;i++){ // 遍历每一行for(int j=1;j<=col;j++){ // 遍历每一列scanf("%d",&x[i][j]); // 输入矩阵元素}}int height=1,lenth=1,set=1; // 定义高度、长度和方向变量,初始值为1for(int i=1;i<=row*col;i++){ // 遍历矩阵中的每一个元素if(set==1){ // 如果方向为1printf("%d\n",x[height][lenth]); // 输出当前元素x[height][lenth]=0; // 将当前元素置为0if(x[height][lenth+1]==0){ // 如果右侧元素为0set=2; // 改变方向为2height++; // 向下移动continue; // 继续下一次循环}else{lenth++; // 向右移动set=1; // 保持方向为1continue; // 继续下一次循环}}if(set==2){ // 如果方向为2printf("%d\n",x[height][lenth]); // 输出当前元素x[height][lenth]=0; // 将当前元素置为0if(x[height+1][lenth]==0){ // 如果下方元素为0set=3; // 改变方向为3lenth--; // 向左移动continue; // 继续下一次循环}else{height++; // 向下移动set=2; // 保持方向为2continue; // 继续下一次循环}}if(set==3){ // 如果方向为3printf("%d\n",x[height][lenth]); // 输出当前元素x[height][lenth]=0; // 将当前元素置为0if(x[height][lenth-1]==0){ // 如果左侧元素为0set=4; // 改变方向为4height--; // 向上移动continue; // 继续下一次循环}else{lenth--; // 向左移动set=3; // 保持方向为3continue; // 继续下一次循环}}if(set==4){ // 如果方向为4printf("%d\n",x[height][lenth]); // 输出当前元素x[height][lenth]=0; // 将当前元素置为0if(x[height-1][lenth]==0){ // 如果上方元素为0set=1; // 改变方向为1lenth++; // 向右移动continue; // 继续下一次循环}else{height--; // 向上移动set=4; // 保持方向为4continue; // 继续下一次循环}}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Android] c++ 通过 JNI 调用 JAVA

Calling Java from C with JNI - CodeProject

Python进程之间同步实现代码

1、 # coding : UTF-8 import multiprocessing, time # 导入多进程的开发模块 def worker(dict): # 进程的处理函数 while True: # 持续售票 number dict.get("ticket") # 获得当前的票数 if number > 0 : # 如果现在还有剩余票 …

运维 | 四层和七层负载均衡介绍

关注: CodingTechWork 负载均衡 负载均衡介绍 概念 负载均衡是建立在现有的网络结构之上&#xff0c;提供一种廉价且透明的方式进行网络设备和服务器带宽的扩展&#xff0c;从而增加吞吐量&#xff0c;加强应用服务的数据处理能力&#xff0c;有效提高网络的灵活性和可用性。…

深度视觉目标跟踪进展综述

1 引言 目标跟踪旨在基于初始帧中指定的感兴趣目标( 一般用矩形框表示) &#xff0c;在后续帧中对该目标进行持续的定位。 基于深度学习的跟踪算法&#xff0c;采用的框架包括相关滤波器、分类式网络、双路网络等。 处理跟踪任务的角度&#xff0c;分为基于匹配思路的双路网…

操作系统——操作系统概论s

一、操作系统基本概念 1 操作系统定义 操作系统是裸机上的第一层软件&#xff0c;它是对硬件系统功能的首次扩充&#xff0c; 用以填补人与机器之间的鸿沟。 OS定义&#xff1a;操作系统是控制和管理计算机系统内各种硬件和软件资源&#xff0c;有效地组织多道程序运行的系统软…

makefile中常见的环境变量

makefile中常见的环境变量 1&#xff09;CFLAGS&#xff1a;用于指定C语言编译器的选项&#xff0c;例如优化级别、警告级别、编译器标志等。 2&#xff09;CXXFLAGS&#xff1a;用于指定C语言编译器的选项&#xff0c;与CFLAGS类似&#xff0c;但专门针对C代码。 3&#xff0…

W2311283-可燃气体监测仪怎么监测燃气管道

可燃气体监测仪怎么有效监测燃气管道 燃气管道遍布于城市地下各处&#xff0c;作为城市生命线的一部分&#xff0c;一旦燃气管网出现泄露问题便是牵一发而动全身&#xff0c;城市的整体安全也会受到威胁。但是如何才能科学管理和监测燃气管网呢&#xff1f; 燃气管网监测系统便…

米贸搜|如何设置 Facebook 转换 API + 事件重复数据删除

Facebook Pixel 可让您跟踪用户在您网站上的行为、收集再营销受众并创建相似对象。如果 Facebook 像素实现正确&#xff0c;它将向 FB 机器学习算法提供相关信息。 FB ML 将使用像素数据向最有可能转化的人展示您的广告。 几年来&#xff0c;我们可以通过 JavaScript 代码、应…

MapReduce概念

1、概念 MapReduce 是一种编程模型&#xff0c;用于大规模数据集的并行处理。它是由 Google 开发的&#xff0c;用于处理大规模数据集的分布式计算框架。 MapReduce 的主要作用是将一个大的任务分解成多个小的任务&#xff0c;并在多台机器上并行执行这些任务。它包括两…

「我在淘天做技术」迈步从头越 - 阿里妈妈广告智能决策技术的演进之路

作者&#xff1a;妙临、霁光、玺羽 一、前言 在线广告对于大多数同学来说是一个既熟悉又陌生的技术领域。「搜广推」、「搜推广」等各种组合耳熟能详&#xff0c;但广告和搜索推荐有本质区别&#xff1a;广告解决的是“媒体-广告平台-广告主”等多方优化问题&#xff0c;其中媒…

localForage存储

一、什么是 localForage 当我们的存储量比较大的时候&#xff0c;我们一定会想到我们的 indexedDB&#xff0c;让我们在浏览器中也可以 使用数据库这种形式来玩转本地化存储&#xff0c;然而 indexedDB 的使用是比较繁琐而复杂的&#xff0c; 有一定的学习成本&#xff0c;但 …

STM32串口波特率在使用中的改变方法

上次讲到了STM32串口波特率在使用中的改变&#xff1a; void MX_USART_UART_Init(UART_HandleTypeDef *huart, USART_TypeDef * uart, int BaudRate) {huart->Instance uart;huart->Init.BaudRate BaudRate;huart->Init.WordLength UART_WORDLENGTH_8B;huart->…

力扣二叉树--第三十三天

前言 前面都是遍历&#xff0c;今天是构造二叉树。 前序和中序可以唯一确定一棵二叉树。 后序和中序可以唯一确定一棵二叉树。 前序和后序不能唯一确定一棵二叉树&#xff01; 内容 一、从中序与后序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树 给定两个整…

视频文案怎么写,媒介盒子支招

近几年短视频成为风口&#xff0c;各行各业都想分一杯羹&#xff0c;但是一头热的你&#xff0c;是否知道短视频的相关文案怎么写呢?正所谓兵马未动&#xff0c;文案先行&#xff0c;一个合适的文案是上热门的秘密武器&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;视频…

Doris-Routine Load(二十七)

例行导入&#xff08;Routine Load&#xff09;功能为用户提供了一种自动从指定数据源进行数据导入的功能。 适用场景 当前仅支持从 Kafka 系统进行例行导入&#xff0c;使用限制&#xff1a; &#xff08;1&#xff09;支持无认证的 Kafka 访问&#xff0c;以及通过 SSL 方…

jks、cer、p12生成

//jks生成 keytool -genkeypair -alias "tomcat" -validity 3650 -keyalg "RSA" -keystore "test.jks" //cer生成 keytool -export -alias "tomcat" -keystore "test.jks" -storepass 123456 -file test.cer //p12生成 …

Attempted to serialize java.lang.Class. Forgot to register a type adapter?

问题&#xff1a;Attempted to serialize java.lang.Class. Forgot to register a type adapter? 原因&#xff1a;Gson不支持类信息&#xff0c;序列化和返序列化 解决方案&#xff1a; 使用Gson的 excluedFieldsWithoutExposeAnnotation() 选项忽略这些字段 Gson gson new …

VMware系列:VMware官网注册账号之验证码问题以及获取ESXi安装程序的方法

VMware官网注册账号之验证码问题以及获取ESXi安装程序的方法 一. VMware官网注册账号之验证码问题1. VMware官网基础账号注册2. VMware官网exsi试用注册二. 获取ESXi安装程序的方法原生态版本下载过程OEM版本下载VMware官网下载过程服务器厂家官网下载过程附录:一. VMware官网…

ArkTS框架深度解析:@Prop、@Link、@ObjectLink装饰器的应用与同步机制【鸿蒙专栏-09】

文章目录 ArkTS框架深度解析:@Prop、@Link、@ObjectLink装饰器的应用与同步机制【HarmonyOS开发】@Prop装饰器概述限制条件使用规则说明使用场景@Link装饰器概述限制条件使用规则说明使用场景@Link装饰器的高级用法动态创建链接自定义同步逻辑最佳实践和注意事项结语ArkTS框架…

小新 Air-14 2021 Intel处理器ITL版(82FF)原厂Win11系统

链接&#xff1a;https://pan.baidu.com/s/1EkqpdGcixCNER5uP5yIc4Q?pwddm1d 提取码&#xff1a;dm1d lenovo联想小新Air14笔记本2021款【82FF】原装出厂Windows11系统镜像ISO文件 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等…