输出n∗n的蛇形矩阵

题目描述

给你一个整数n,输出n∗n的蛇形矩阵。 输入描述: 输入一行,包含一个整数n 输出描述: 输出n行,每行包含n个正整数,通过空格分隔。

1<=n<=1000
示例
输入4
输出
1 2 6 7 3
5 8 13 4
9 12 14
10 11 15 16

#include"stdio.h"
int main()
{
int n,a[1000][1000];
int i,j,k=1,w=1,x=1;
scanf("%d",&n);
while(k<=n*n)
{
for(i=0,j=w-1;i<w,j>=0;i++,j--)
{
if(i>=n||j>=n) continue;
a[j][i]=k; k++;
}
w++;
for(i=w-1,j=0;i>=0,j<w;i--,j++)
{
if(i>=n||j>=n) continue;
a[j][i]=k; k++;
}
w++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}