蛇形t填数字问题

#include "stdio.h"
#include "string.h"
main()
{
	int n,i,j,x,y,cou,a[10][10];
	
	memset(a,0,sizeof(a));
	scanf("%d",&n);
	cou = 1; x=0,y=n-1;
	a[x][y] = cou;		
	while(cou<n*n)
	{
		while(x+1<n && !a[x+1][y]) a[++x][y] = ++cou;
		while(y>0 && !a[x][y-1]) a[x][--y] = ++cou;
		while(x>0 && !a[x-1][y]) a[--x][y] = ++cou;
		while(y+1<n && !a[x][y+1]) a[x][++y] = ++cou;	
	}
	
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			printf("%3d",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}

跳行的时候易出错

你可能感兴趣的:(蛇形t填数字问题)