九宫格题目求纠错
题目:以中下格为起点,按右下为方向顺序填写(想象格子上下相连,左右相连),遇到右下格已占,填入正上方格内。
我的代码:
#include<stdio.h>
int main()
{
int i,j,n,x1,y1;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[j][i]=0;
}
int x,y;
x=n/2;
y=n-1;
int m=1;
while(1)
{
a[y][x]=m;
m++;
if(m>(n*n))
break;
else
{
x1=x+1;
x1=(x1%n);
y1=y+1;
y1=(y1%n);
if(a[y1][x1]!=0)
{
y--;
}
if(y<0)
{
y+=n;
}
else
{
x=x1;
y=y1;
}
}
}
}
for(i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf("%4d ",a[i][j]);
}
printf("\n");
}
return 0;
}