New_C_learner 2018-11-11 15:16 采纳率: 0%
浏览 695

骑士游历C语言版,用类似迷宫算法如下,求大神告知错误的地方。

代码如下:
#include
#define _CRT_SECURE_NO_WARNINGS

int a[8][8] = { 0 };
int success = 0;
int n = 0;
void print_tu();
void step(int i, int j);
void main()
{
step(4, 6);
}
void print_tu()
{
int i, j;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
printf("%d\t", a[i][j]);
printf("\n");
}
}

void step(int i,int j)
{
n = n + 1;
a[i][j] = n;
if (n == 64)
{
success = 1;
print_tu();
}
else
{
if (success != 1 && (i-1>=0)&&(j-2>=0)&&a[i - 1][j - 2] == 0)step(i - 1, j - 2);
if (success != 1 && (i-2>=0)&&(j-1>=0)&&a[i - 2][j - 1] == 0)step(i - 2, j - 1);
if (success != 1 && (i-2>=0)&&(j-1>=0)&&a[i - 2][j - 1] == 0)step(i - 2, j - 1);
if (success != 1 && (i-2>=0)&&(j+1<=7)&&a[i - 2][j + 1] == 0)step(i - 2, j + 1);
if (success != 1 && (i-1>=0)&&(j+2<=7)&&a[i - 1][j + 2] == 0)step(i - 1, j + 2);
if (success != 1 && (i+1<=7)&&(j-2>=0)&&a[i + 1][j - 2] == 0)step(i + 1, j - 2);
if (success != 1 && (i+2<=7)&&(j-1>=0)&&a[i + 2][j - 1] == 0)step(i + 2, j - 1);
if (success != 1 && (i+2<=7)&&(j+1<=7)&&a[i + 2][j + 1] == 0)step(i + 2, j + 1);
if (success != 1 && (i+1<=7)&&(j+2<=7)&&a[i + 1][j + 2] == 0)step(i + 1, j + 2);
if (success != 1)
{
a[i][j] = 0;
n = n - 1;
}
}
}

  • 写回答

1条回答 默认 最新

  • devmiao 2018-11-11 15:51
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。