所谓“螺旋方阵”,是指对任意给定的NNN,将1到N×NN/times NN×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×NN/times NN×N的方阵里。本题要求构造这样的螺旋方阵。
输入在一行中给出一个正整数NNN(<10<10<10)。
输出N×NN/times NN×N的螺旋方阵。每行NNN个数字,每个数字占3位。
#include<stdio.h>int main(){ int a[10][10]={0}; int i,j,flag,count; int n,m,u,ans,k; scanf("%d",&n); m=ans=i=j=count=0; u=n; k=n*n; while(ans<k) { while(j<n&&(ans<k)) { a[i][j]=++count; ++ans; if(j==n-1) break; j++; } i++; while(i<n&&(ans<k)) { a[i][j]=++count; ++ans; if(i==n-1) break; i++; } j--; while(j>=m&&(ans<k)) { a[i][j]=++count; ++ans; if(j==m) break; j--; } m++; i--; while(i>=m&&(ans<k)) { a[i][j]=++count; ++ans; if(i==m) break; i--; } j++; n--; } for(i=0;i<u;i++) { for(j=0;j<u;j++) { PRintf("%3d",a[i][j]); } printf("/n"); }}
新闻热点
疑难解答