当前位置: 首页 > news >正文

C语言:螺旋阵

右螺旋阵

输入格式

一行,输入两个正整数n和m(2≤n,m≤30),分别表示行和列数

输出格式

输出对应的右螺旋矩阵

一个4*4的右螺旋矩阵是下面这个样子的:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7


void generate(int n,int m,int mar[n][m])
{int count=1;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;while(row_start<=row_end&&col_start<=col_end){for(int i=col_start;i<=col_end;i++){mar[row_start][i]=count++;}row_start++;for(int i=row_start;i<=row_end;i++){mar[i][col_end]=count++;}col_end--;if(row_start<=row_end){for(int i=col_end;i>=col_start;i--){mar[row_end][i]=count++;}row_end--;}if(col_start<=col_end){for(int i=row_end;i>=row_start;i--){mar[i][col_start]=count++;}col_start++;}}
}

左螺旋阵

一个4*4的左螺旋矩阵是下面这个样子的:

13 14 15 16

12 3 4 5

11 2 1 6

10 9 8 7

void generate(int n,int m,int mar[n][m])
{int count=n*m;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;int i=0;while(row_start<=row_end&&col_start<=col_end){for(i=col_end;i>=col_start;i--){mar[row_start][i]=count--;}row_start++;for(i=row_start;i<=row_end;i++){mar[i][col_start]=count--;}col_start++;if(row_start<=row_end){for(i=col_start;i<=col_end;i++){mar[row_end][i]=count--;}row_end--;}if(col_start<=col_end){for(i=row_end;i>=row_start;i--){mar[i][col_end]=count--;}col_end--;}}
}

完整代码(左螺旋阵)

#include <stdio.h>
void generate(int n,int m,int mar[n][m])
{int count=n*m;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;int i=0;while(row_start<=row_end&&col_start<=col_end){for(i=col_end;i>=col_start;i--){mar[row_start][i]=count--;}row_start++;for(i=row_start;i<=row_end;i++){mar[i][col_start]=count--;}col_start++;if(row_start<=row_end){for(i=col_start;i<=col_end;i++){mar[row_end][i]=count--;}row_end--;}if(col_start<=col_end){for(i=row_end;i>=row_start;i--){mar[i][col_end]=count--;}col_end--;}}
}
int main()
{int n,m;scanf("%d%d",&n,&m);int mar[n][m];generate(n,m,mar);int i,j;for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",mar[i][j]);}printf("\n");}return 0;
}

相关文章:

  • 2.8日学习打卡----初学RabbitMQ(三)
  • 【NLP】MHA、MQA、GQA机制的区别
  • 鸿蒙系统优缺点,能否作为开发者选择
  • React和Vue 中的 router 实现原理如何
  • php数据类型以及运算符、判断条件
  • CSS 评分器星星效果
  • TiDB 在医疗保障信息平台的应用实践
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之AlphabetIndexer组件
  • 【优化数学模型】3. 基于Python的整数规划-指派问题求解
  • 【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
  • linux---内存管理
  • linux驱动工作原理
  • 单翻译单元的基本结构
  • 【Python---六大数据结构】
  • C++入门学习(三十)一维数组的三种定义方式
  • 【Leetcode】104. 二叉树的最大深度
  • CAP 一致性协议及应用解析
  • interface和setter,getter
  • Less 日常用法
  • MobX
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Theano - 导数
  • vue--为什么data属性必须是一个函数
  • 初探 Vue 生命周期和钩子函数
  • 前端存储 - localStorage
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 用mpvue开发微信小程序
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 数据可视化之下发图实践
  • 移动端高清、多屏适配方案
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (zhuan) 一些RL的文献(及笔记)
  • (十一)c52学习之旅-动态数码管
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)甲方乙方——赵民谈找工作
  • .axf 转化 .bin文件 的方法
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net 垃圾回收机制原理(二)
  • .Net 应用中使用dot trace进行性能诊断
  • .net专家(高海东的专栏)
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @Repository 注解
  • [20161214]如何确定dbid.txt
  • [ActionScript][AS3]小小笔记
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [bzoj4240] 有趣的家庭菜园
  • [CTF]php is_numeric绕过
  • [fsevents@^2.1.2] optional install error: Package require os(darwin) not compatible with your platfo
  • [HeadFrist-HTMLCSS学习笔记][第一章Web语言:开始了解HTML]
  • [HTML API]HTMLCollection
  • [JS]JavaScript 简介