用C语言写一个示例代码
时间: 2023-10-08 21:10:56 浏览: 59
好的,以下是一个简单的示例代码,可以帮助你解决这个问题:
```
#include <stdio.h>
int main() {
int T;
scanf("%d", &T); // 输入测试数据组数
while (T--) {
int s1, s2, e1, e2;
scanf("%d %d %d %d", &s1, &s2, &e1, &e2); // 输入起点和终点坐标
char maze[5][5];
for (int i = 0; i < 5; i++) {
scanf("%s", maze[i]); // 输入迷宫
}
int visited[5][5] = {0}; // 标记是否访问过
int dx[] = {-1, 1, 0, 0}; // 方向数组
int dy[] = {0, 0, -1, 1};
int queue[25][2]; // 存储队列
int front = 0, rear = 0; // 队列的头和尾
queue[rear][0] = s1;
queue[rear][1] = s2;
rear++;
visited[s1][s2] = 1;
while (front < rear) {
int x = queue[front][0];
int y = queue[front][1];
front++;
if (x == e1 && y == e2) { // 到达终点
printf("YES\n");
break;
}
for (int i = 0; i < 4; i++) { // 遍历四个方向
int nx = x + dx[i];
int ny = y + dy[i];
if (nx >= 0 && nx < 5 && ny >= 0 && ny < 5 && maze[nx][ny] == '.' && !visited[nx][ny]) {
visited[nx][ny] = 1;
queue[rear][0] = nx;
queue[rear][1] = ny;
rear++;
}
}
}
if (front >= rear) { // 没有到达终点
printf("NO\n");
}
}
return 0;
}
```
这个示例代码中,我们使用了广度优先搜索算法来解决这个问题。对于每组测试数据,我们先读入起点和终点坐标,然后读入迷宫,使用一个二维数组来存储迷宫,'.'表示可走,'*'表示围墙。我们使用一个标记数组来标记每个位置是否访问过。然后我们使用一个队列来存储需要访问的位置,使用一个方向数组来遍历四个方向。当我们到达终点时,输出YES,否则输出NO。
希望这个示例代码可以帮助到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)