[求助]编写一个程序,要求输出字轮转组成一正方形,想了半天没想出来.
用C语言编写一个程序,要求输出字轮转组成一正方形,已n作为边长,比如:
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
n=4
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
n=5
在线等...
没有找到下标的规律所以写的很长
#include<stdio.h>
void main()
{
int a[50][50];
int i,n,k,l;
scanf("%d",&n);
for(i=0;i<50;i++)
{
for(k=0;k<50;k++)
a[i][k]=0;
}
k=l=0;
i=1;
while(i<=n*n)
{
while(l<n&&a[l][k]==0)
{
a[l++][k]=i;
i++;
}
l--;
k++;
while(k<n&&a[l][k]==0)
{
a[l][k++]=i;
i++;
}
k--;
l--;
while(l>=0&&a[l][k]==0)
{
a[l--][k]=i;
i++;
}
l++;
k--;
while(k>=0&&a[l][k]==0)
{
a[l][k--]=i;
i++;
}
k++;
l++;
}
for(i=0;i<n;i++)
{
for(k=0;k<n;k++)
printf("%5d",a[i][k]);
printf("\n");
}
}