当前位置:   article > 正文

7-4 螺旋方阵 (20 分)_7-1 寻找第k小的数 分数 11 作者 usx程序设计类课程组 单位 绍兴文理学院 给定若

7-1 寻找第k小的数 分数 11 作者 usx程序设计类课程组 单位 绍兴文理学院 给定若

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

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

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

输入样例:

5
  • 1

输出样例:

  1  2  3  4  5
 16 17 18 19  6
 15 24 25 20  7
 14 23 22 21  8
 13 12 11 10  9
  • 1
  • 2
  • 3
  • 4
  • 5
#include<stdio.h>
int main()
{
	int n;
	int h=0,l=0;
	int result=1;
	int a[100][100];
	scanf("%d",&n);
	a[0][0]=1;
	while(n*n!=result)
	{
		for(;;)
		{
			if((l+1<n&&a[h][l+1]==0)!=1) break;
			a[h][++l]=++result;
		}
		for(;;)
		{
			if((h+1<n&&a[h+1][l]==0)!=1) break;
			a[++h][l]=++result;
		}
		for(;;)
		{
			if((l-1>=0&&a[h][l-1]==0)!=1) break;
			a[h][--l]=++result;
		}
		for(;;)
		{
			if((h-1>=0&&a[h-1][l]==0)!=1) break;
			a[--h][l]=++result;
		}
			
	}
	for(h=0;h<n;h++){
		for(l=0;l<n;l++){
			printf("%3d",a[h][l]);
		}
		printf("\n");
	}
	return 0;
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/298091
推荐阅读
相关标签
  

闽ICP备14008679号