此题链接单击这里
=================
#include <iostream>
#include <cstring>
using namespace std;
char a[25][25];
int b[25][25];
int c[4][2]={{-1,0},{0,-1},{1,0},{0,1}};
int W, H,k;
bool is(int ai,int aj)
{
if(ai<1||ai>H||aj<1||aj>W)
return true;
return false;
}
void funt(int ai,int aj)
{
if(is(ai,aj))
return ;
if(a[ai][aj]=='#')
return ;
k++;
for(int i=0;i<4;i++)
{
int ax=ai+c[i][0];
int ay=aj+c[i][1];
if(b[ax][ay]!=1)
{
b[ax][ay]=1;
funt(ax,ay);
}
}
}
int main()
{
while (cin >> W >> H&&W&&H){
int ji, jj;
k=0;
memset(b,0,sizeof(b));
for (int i = 1; i <= H; i++)
for (int j = 1; j <= W; j++)
{
cin >> a[i][j];
if (a[i][j] == '@')
{
ji = i;
jj = j;
}
}
b[ji][jj]=1;
funt(ji,jj);
cout<<k<<endl;
}
}
有问题联系企鹅791267032
邮箱地址….wutanrong@Hotmail.com
本文介绍了一个使用C++实现的迷宫搜索算法。该算法通过递归方式遍历迷宫地图,寻找从指定起点可达的所有位置,并统计可达位置的数量。文章提供了一段完整的代码示例,包括读取迷宫地图、定义边界检查函数、实现递归搜索函数等关键步骤。
4843

被折叠的 条评论
为什么被折叠?



