编程打印一个输出形式为N*N的螺旋方阵(顺时针)
思路:
结果:
代码:
#include <iostream>
#include <stdio.h>
#define N 15
int main( )
{
int array[N][N]={0};//定义数组存储数据
int n,i=-1,j=-1,h=0;
scanf("%d",&n);
int k=1;//初始化自增数字
while(k<=n*n)//一直循环到n*n
{
i++;j++;//下标出界,调整
while(j<n-h)//上层
{
array[i][j]=k++;
j++;
}
i++;j--;//下标出界,调整
while(i<n-h)// 右边
{
array[i][j]=k++;
i++;
}
i--;j--;//下标出界,调整
while(j>=h)//下层
{
array[i][j]=k++;
j--;
}
i--;j++;//下标出界,调整
h++;//圈数
while(i>=h)//左边
{
array[i][j]=k++;
i--;
}
}
//打印结果
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",array[i][j]);
}
printf("\n");
}
return 0;
}