一个c++问题 20

#include<iostream>usingnamespacestd;inta[5][5];//////////////////////////////////////... #include <iostream>
using namespace std;
int a[5][5];
//////////////////////////////////////////////////////
void solve(int i,int j,int k)
{
a[i][j]=k;

if(k==25)
{

for(int m=0;m<5;m++)
{
for(int n=0;n<5;n++)
cout<<a[m][n]<<" ";
cout<<endl;
}
return;
}
else
{
if((i-1>0)&&(j-2>0)&&!a[i][j]) solve(i-1,j-2,k+1);
if((i-1>0)&&(j+2<5)&&!a[i][j]) solve(i-1,j+2,k+1);
if((i+1<5)&&(j-2>0)&&!a[i][j]) solve(i+1,j-2,k+1);
if((i+1<5)&&(j+2<5)&&!a[i][j]) solve(i+1,j+2,k+1);
if((i-2>0)&&(j-1>0)&&!a[i][j]) solve(i-2,j-1,k+1);
if((i-2>0)&&(j+1<5)&&!a[i][j]) solve(i-2,j+1,k+1);
if((i+2<5)&&(j-1>0)&&!a[i][j]) solve(i+2,j-1,k+1);
if((i+2<5)&&(j+1<5)&&!a[i][j]) solve(i+2,j+1,k+1);
}

a[i][j]=0;
}

/////////////////////////////////////////////

void mian()
{
for(int q=0;q<5;q++)
for(int w=0;w<5;w++)
a[q][w]=0;

int x,y;
cout<<"输入两个整数,小于5"<<endl;

while(1)
{
cin>>x>>y;
if(x>5||x<1||y>5||y<1)
{
cout<<"错误重新输入"<<endl;
continue;
}
else solve(x-1,y-1,1);
}
}
程序运行是错误提示为:Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/r16_3.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

r16_3.exe - 2 error(s), 0 warning(s)

题目要求为
编写程序求解骑士巡游问题:在n行n列的棋盘上(如n=5),假设一位骑士(按象棋中“马走日”的行走法)从初始坐标位置(x1,y1)出发,要遍访(巡游)棋盘中的每一个位置一次。请编一个程序,为骑士求解巡游“路线图”(或告诉骑士,从某位置出发时,无法遍访整个棋盘 — 问题无解)。
当n=5时,意味着要在5行5列的棋盘的25个“点”处,按骑士行走规则,依次将1至25这25个“棋子”(数码)分别摆放到棋盘上(摆满25个位置则成功,否则失败问题无解)。
例如,当n=5且初始坐标位置定为(1,1) — 即最左上角的那个点时,如下是一种巡游“路线图”。程序执行后的输出结果为:
(x1,y1)? => (1=>5, 1=>5) : 1 1
1 6 15 10 21
14 9 20 5 16
19 2 7 22 11
8 13 24 17 4
25 18 3 12 23

望高人指点!!
展开
 我来答
百度网友18f06dd72
2007-11-25
知道答主
回答量:70
采纳率:0%
帮助的人:26万
展开全部
去网上找个骑士问题的源代码吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式