c语言编程?矩阵问题?

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:45:33
填数字游戏7 8 9
6 1 2
5 4 3

21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13

就是按这种规律输出

输出到7就可以了,i=3,5,7谢谢大师们了 !

#include <stdio.h>
#include <assert.h>
#define MAX 10 /*最大值是10*/
int lx[MAX][MAX];
int b=0,n;

void print()
{
int i,j;
for (i=0;i<n;i++){
for (j=0;j<n;j++)
printf("%4d",lx[i][j]);
putchar('\n');
}
}

void try(int x,int y,int p)
{
b--;
lx[x][y]=b;
if (b>1) {
switch (p)
{
case 1:
if (x==n-1||lx[x+1][y]) try(x,y+1,2); else try(x+1,y,1);
break;
case 2:
if (y==n-1||lx[x][y+1]) try(x-1,y,3); else try(x,y+1,2);
break;
case 3:
if (x==0||lx[x-1][y]) try(x,y-1,4); else try(x-1,y,3);
break;
case 4:
if (y==0||lx[x][y-1]) try(x+1,y,1); else try(x,y-1,4);
break;
}
}else print();
}

int main(int argc, char* argv[])
{

int i,j;