数组-13. 螺旋方阵(20)

来源:互联网 发布:装修监理必知 编辑:程序博客网 时间:2024/05/01 14:13


时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

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

输入格式:

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

输出格式:

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

输入样例:
5
输出样例:
  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
我的想法是先弄出螺旋一圈的算法,然后循环螺旋算法就好
#include<stdio.h>int main(){int n;while(scanf("%d",&n)!=EOF){int a[10][10];int s=0;int m,i,j;m=0;while(n-m>0){i=m;for(j=m;j<n-m;j++){s++;a[i][j]=s;}i++;j--;while(j==n-m-1&&i<n-m){s++;a[i][j]=s;i++;}i--;j--;while(i==n-m-1&&j>=m){s++;a[i][j]=s;j--;}j++;i--;while(j==m&&i>m){s++;a[i][j]=s;i--;}m++;}for(i=0;i<n;i++)for(j=0;j<n;j++){if(j==n-1)printf("%3d\n",a[i][j]);elseprintf("%3d",a[i][j]);}}return 0;}


0 0
原创粉丝点击