目前在看《数据结构》,这是数组后面的一道习题
warnsdorff规则是:骑士总是移向具有最少出口且没有到达过的方格,下面是代码
/*骑士巡游问题的Warnsdorff规则实现
*2013 1 15
*/
#include <stdio.h>
#include <stdlib.h>
int i, j;
int npos;
int m, k;
int ktmove1[8] = {-2, -1, 1, 2, 2, 1, -1, -2};
int ktmove2[8] = {1, 2, 2, 1, -1, -2, -2, -1};
static int board[8][8]; //
int nexti[8], nextj[8];
int l;
int min;
int exits[8];
int main (void)
{
printf ("Input the knight position:");
if (scanf ("%d%d", &i, &j) != 2)
{
printf ("Can't scanf \n");
exit(1);
}
if (i < 0 || i >= 8 ||j < 0 || j >= 8)
{
printf ("The position is too big or too small\n");
exit(1);
}
printf ("You start at (%d,%d)\n", i, j);
//start the tour
for (m = 1; m < 64; m++)
{
for (k = 0, npos = 0, l = 0; k < 8; k++)
{
if (i + ktmove1[k] >= 0 &a