数字螺旋C语言代码

来源:百度知道 编辑:UC知道 时间:2024/05/09 17:56:27
输出结果如下:
17 16 15 14 13
18 5 4 3 12
19 6 1 2 11
20 7 8 9 10
21 22 23 24 25

你上面的是5*5的螺旋数
我写的是你可以通过输入
n,然后显示的是n*n的螺旋
数。最大输入10
#include<stdio.h>
void main()
{
int i,j,n,m,z,k,p; int a[11][11];
scanf("%d",&n);
p=n;
z=n*n;
m=(n+1)/2;
for(k=1;k<=m;k++,n--)
{
for(i=n,j=n;j>=k;j--)
a[i][j]=z--;
for(i=n-1,j=j+1;i>=k;i--)
a[i][j]=z--;
for(j=j+1,i=i+1;j<=n;j++)
a[i][j]=z--;
for(j=j-1,i=i+1;i<=n-1;i++)
a[i][j]=z--;
}
for(i=1;i<=p;i++)
{
for(j=1;j<=p;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
}