博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
螺旋方阵
阅读量:6909 次
发布时间:2019-06-27

本文共 1311 字,大约阅读时间需要 4 分钟。

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

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

思路:

1. 按→方向填充,当数组元素值不是-1时,切换方向到 ↓

2. 继续沿 ↓ 填充,当数组元素值不是-1时,切换方向为←

3. 继续沿←填充,当数组元素值不是-1时,切换方向为 ↑

4. 继续沿 ↑ 填充,当数组元素值不是-1时,切换方向为→(回到第1步)

#include
#include
#include
#include
int main(){ int n, a[15][15]/*={0}*/; memset(a, 0, sizeof(a));//a内所有元素变为0 scanf("%d", &n); int i = 1, j = 1, k = 1; while(k <= n * n) { while(j <= n) { if(!a[i][j]) a[i][j++] = k++; else break; } j--; i++; while(i <= n) { if(!a[i][j]) a[i++][j] = k++; else break; } i--; j--; while(j > 0) { if(!a[i][j]) a[i][j--] = k++; else break; } j++; i--; while(i > 0) { if(!a[i][j]) a[i--][j] = k++; else break; } i++; j++; } for(i = 1; i <= n; i++) { for(j = 1; j < n; j++) printf("%3d", a[i][j]); printf("%3d\n", a[i][j]); } return 0;}

 

转载于:https://www.cnblogs.com/mayouyou/p/8650171.html

你可能感兴趣的文章
Hibernate与Mybatis/iBatis的区别
查看>>
Java源码学习之:Semaphore
查看>>
林仕鼎谈架构设计与架构师
查看>>
操作系统CnetOS_7—systemd管理实践指南
查看>>
cocos2d-x滚屏简单实现
查看>>
我的友情链接
查看>>
ThinkPHP的where方法的in操作符说明
查看>>
Maven的依赖
查看>>
MySQL 5.5 安装方法 详细图解
查看>>
也谈教育公平与户籍改革
查看>>
我的友情链接
查看>>
读Zepto源码之样式操作
查看>>
我的友情链接
查看>>
MyBatis 整合 Spring开发
查看>>
HTML互动视频教程
查看>>
深入浅出Future Pattern
查看>>
微信公众平台企业号回调模式的URL验证
查看>>
平台常用函数介绍
查看>>
公司讲座
查看>>
惆怅,诸事不顺
查看>>