C语言暴力遍历法解决迷宫int arr[4][4]={{{0,0,0,0},{1,0,1,1},{1,0,0,0},{1,1,0,0},{1,1,1,1};问题 起点(0,0),终点(3,3)
时间: 2023-08-03 11:03:58 浏览: 57
好的,这里是一种基于暴力遍历法的 C 语言解决迷宫的代码,可以帮助你解决这个问题:
```
#include <stdio.h>
#define ROWS 4
#define COLS 4
int arr[ROWS][COLS] = {{0,0,0,0},{1,0,1,1},{1,0,0,0},{1,1,0,0}};
int DFS(int x, int y) {
if (x < 0 || y < 0 || x >= ROWS || y >= COLS || arr[x][y] == 1) {
return 0;
}
if (x == ROWS - 1 && y == COLS - 1) {
return 1;
}
arr[x][y] = 1;
if (DFS(x+1, y) || DFS(x-1, y) || DFS(x, y+1) || DFS(x, y-1)) {
return 1;
}
arr[x][y] = 0;
return 0;
}
int main() {
if (DFS(0, 0)) {
printf("找到了出口!\n");
} else {
printf("没有找到出口!\n");
}
return 0;
}
```
这个算法基于深度优先搜索,从起点开始向四个方向递归搜索,如果找到了终点就返回 1,否则返回 0,直到所有可能的路线都被搜索完毕。在搜索过程中,如果遇到了障碍物或者越界就返回 0。为了避免重复搜索,我们使用了一个二维数组 `arr` 来记录已经访问过的位置。如果我们找到了一条通往出口的路径,就输出“找到了出口!”;否则输出“没有找到出口!”。
阅读全文