7-9 螺旋方阵 (15 分)
本题要求从右下角开始按螺旋型递减打印数字方阵。
输入格式:
输入为一个正整数n (1=<n<=20)。
输出格式:
螺旋型递减顺序输出n行n列的数字方阵,每个数字占4个宽度,左对齐。
输入样例:
4
输出样例:
10 9 8 7
11 2 1 6
12 3 4 5
13 14 15 16
#include <stdio.h>
int main(int argc, char *argv[])
{
int N,i,j,n,num=1;
int a[21][21]={0};
scanf("%d",&N);num=N*N;
for(n=0;n<=N/2;n++){
for(j=N-n-1;j>n;j--) a[N-n-1][j]=num--;
for(i=N-n-1;i>n;i--) a[i][n]=num--;
for(j=n;j<=N-n-1;j++) a[n][j]=num--;
for(i=n+1;i<N-n-1;i++) a[i][N-n-1]=num--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++) printf("%-4d",a[i][j]);
printf("\n");
}
}