/******************************主函数***********************************/
int main()
{
    int i,j,k,l;
    printf("Please input size of the chessboard: ");  /*输入矩阵的大小值*/
	scanf("%d",&n);
    m=n*n;
    creatadjm();                                         /*创建标志矩阵*/
	puts("The sign matrix is:");
    for(i=1;i<=m;i++)                                /*打印输出标志矩阵*/
    {
        for(j=1;j<=m;j++) 
			printf("%2d",adjm[i][j]);
        printf("\n");
    }

    printf("Please input the knight's position (i,j): "); /*输入骑士的初始位置*/
    scanf("%d %d",&i,&j);
    l=(i-1)*n+j;                   /*骑士当前位置对应的标志矩阵的横坐标*/
    while ((i>0)||(j>0))                             /*对骑士位置的判断*/
    {
        for(i=1;i<=n;i++)                              /*棋盘矩阵初始化*/
            for(j=1;j<=n;j++)
                f[i][j]=0;
        k=0;                                             /*所跳步数计数*/
        travel(l,k);                                /*从i,j出发开始巡游*/
        puts("The travel steps are:");
        for(i=1;i<=n;i++)                      /*巡游完成后输出巡游过程*/
	{
            for(j=1;j<=n;j++)
			    printf("%4d",f[i][j]);
            printf("\n");
	}

	printf("Please input the knight's position (i,j): ");/*为再次巡游输入起始位置*/
	scanf("%d %d",&i,&j);
        l=(i-1)*n+j;
    }
	puts("\n Press any key to quit... ");
	getchar();
    return 0;
}
Exemple #2
0
int main()
{
    int i,j,k,l;
    printf("Input n:");scanf("%d",&n);
    m=n*n;
    creatadjm();
    for(i=1;i<=m;i++)
    {
        for(j=1;j<=m;j++) printf("%2d",adjm[i][j]);
            printf("\n");
    }
    getchar();
    printf("Input i,j:");
    scanf("%d %d",&i,&j);
    l=(i-1)*n+j;
    while ((i>0)||(j>0))
    {
        for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        f[i][j]=0;
    k=0;

    travel(l,k);
printf("%d\n",fgf);fgf=0;

    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++) printf("%4d",f[i][j]);
            printf("\n");
    }
    getchar();
    printf("Input i,j:");scanf("%d %d",&i,&j);
    l=(i-1)*n+j;
    }
    return 0;
}