欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用数组写出螺旋方阵

程序员文章站 2022-07-14 23:51:32
...

代码示例:

#include<stdio.h>
int main()
{
	int num;
	int cnt;
	int top,bottom;
	int i,j;
	int arr[10][10];
	printf("请输入螺旋方阵的行数(1-10):");
	scanf("%d",&num);

	cnt=1;
	top=0;
	bottom=num-1;

	while(cnt<=num*num&&top<=bottom)
	{
		i=top;
		j=top;

		if(top==bottom)
		{
			arr[i][j]=cnt;
			break;
		}

		for(j=top;j<bottom;j++)
		{
			arr[i][j]=cnt;
			cnt++;
		}
		for(i=top;i<bottom;i++)
		{
			arr[i][j]=cnt;
			cnt++;
		}
		for(j=bottom;j>top;j--)
		{
			arr[i][j]=cnt;
			cnt++;
		}
		for(i=bottom;i>top;i--)
		{
			arr[i][j]=cnt;
			cnt++;
		}
		top++;
		bottom--;
	}
for(i=0;i<num;i++)
{
	for(j=0;j<num;j++)
	{
		printf("%3d ",arr[i][j]);
	}
	printf("\n");
}
return 0;
}
     

和打印图案的算法相差无几,底部和顶部打印所以设置
top bottom两个变量,算法核心在整个while语句循环体中