题目:建立一个程序,输入整数N,生成并输出N行N列的顺时针螺旋方阵,如下图所示:

解答:这个题目属于编程类经常出现的二维数组基础题,本人作为初学者,自己做出了一套可能有点复杂的解法,欢迎大家讨论交流。

首先是设定基本情况,把第一个数字num[0][0]赋值为1;

int n;cout<<"请输入矩阵的大小:"<<endl;cin>>n;int num[N][N]={0};int i=0,j=0;num[0][0]=1;
for(;num[i][j]<n*n;){     for(;j<n-1;){num[i][++j]=num[i][j-1]+1;/*这个if的作用是当撞到墙壁(出现定义过的),则退出循环,转换方向*/if(num[i][j+1]!=0)  break;}/*若达到末端,则退出循环*/if(num[i][j]==n*n)break;for(;i<n-1;){num[++i][j]=num[i-1][j]+1;if(num[i+1][j])break;}/*若达到末端,则退出循环*/  if(num[i][j]==n*n)break;for(;j>0;){num[i][--j]=num[i][j+1]+1;if(num[i][j-1]!=0)break;}/*若达到末端,则退出循环*/if(num[i][j]==n*n)break; for(;i>0;){num[--i][j]=num[i+1][j]+1;if(num[i-1][j]!=0)break;}}      

最后就是输出

for(i=0;i<n;i++){for(j=0;j<n;j++){cout<<setw(5)<<num[i][j];       }cout<<endl;}

代码执行后的效果如下图:

c++顺时针螺旋方阵相关推荐

  1. 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 这是最基本的思路 #inclu ...

  2. 螺旋方阵 螺旋方阵题目描述所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入 输入在一行中给出一个正整 ...

  3. 【 螺旋方阵 】所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    输入格式: 输入在一行中给出一个正整数N(<10). 输出格式: 输出N×N的螺旋方阵.每行N个数字,每个数字占3位. 输入样例: 5 输出样例: 1 2 3 4 516 17 18 19 61 ...

  4. 【无标题】所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    输入格式: 输入在一行中给出一个正整数N(<10). 输出格式: 输出N×N的螺旋方阵.每行N个数字,每个数字占3位. 输入样例: 5 输出样例:   1   2   3   4  5 16 1 ...

  5. 实验7.2 二维数组 7-8 螺旋方阵

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入格式: 输入在一行中给出一 ...

  6. 经典题目螺旋方阵的详解

    7-102 螺旋方阵 (20分) 所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵 ...

  7. 7-4 螺旋方阵 (20 分)

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入格式: 输入在一行中给出一 ...

  8. 螺旋方阵(列举法,分治法,java版,逆时针)

    目录 螺旋方阵介绍 1.适合基础薄弱同学的 列举法 2.螺旋方阵代码 螺旋方阵介绍 所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向 ...

  9. 一类螺旋方阵问题的算法分析与实现

    一类螺旋方阵问题的算法分析与实现 前言 全国青少年信息学(计算机)奥林匹克竞赛常常要用到许多经典算法,比如约瑟夫问题.螺旋方阵.汉诺塔.八皇后问题等,而 螺旋方阵问题是其中较为常用的一种.这类问题的算 ...

最新文章

  1. 京东某女程序员求助:刚入职就意外怀孕,纠结还能不能过试用期?网友:职场女性太难!...
  2. Session 时间
  3. 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别...
  4. LeetCode 2162. 设置时间的最少代价(枚举)
  5. 运维堡垒机(跳板机)系统 python
  6. easyui的一个bug记录
  7. file表单元素怎样设置浏览按钮的样式
  8. 20145321 实验三实验报告
  9. 《Android框架揭秘》——1.2节通过启动过程分析Android Framework
  10. 数论入门符号_大o符号快速入门
  11. 使用WinImage的命令行修改img文件
  12. 【luogu P3403】跳楼机(图论)
  13. NONMEM软件自定义模型
  14. Spring Data JPA 4.方法定义规范
  15. gdb打印errno显示cant find thread-local storage xxxx
  16. 面试紧张不善于表达该怎么解决?
  17. vue3 语法之 父组件,子组件之间的数据传递
  18. torque--客户端使用torque
  19. android QQ文字提取,手机QQ V7.1.8文字提取新功能怎么用?手机QQ文字提取教程
  20. python绘制热力地图_Python学习笔记:Python做热力地图

热门文章

  1. anaconda配置h5py===2.10.0
  2. 游戏感虚拟感觉的游戏设计师_从零到游戏设计师:即使您没有任何经验,如何开始制作视频游戏...
  3. golang语言的入门基础,及window和linux系统上环境的搭配及运行
  4. 金蝶系统服务器链接设置,金蝶如何设置连接服务器
  5. mysql前台启动linux,mysql 在linux下的启动
  6. Github上收集了70个微信小程序源码
  7. DRV8825驱动步进电机测试经验(抖动不转问题)
  8. Unity演示场景枫丹白露(Fontainebleau)技术分析
  9. 通过ip获取所在地理位置、通过手机号获取归属地
  10. C primer plus 第二章课后复习题与编程练习笔记