以下是一个使用DFS算法解决迷宫问题的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define ROW 10
#define COL 10
int maze[ROW][COL] = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 1, 1, 1, 0, 1, 0},
{0, 1, 1, 0, 1, 1, 1, 0, 1, 0},
{0, 1, 1, 1, 1, 0, 0, 1, 1, 0},
{0, 1, 0, 0, 0, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 1, 0, 1, 1, 1, 0, 1, 1, 0},
{0, 1, 0, 0, 0, 1, 0, 0, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};
int visited[ROW][COL] = {0};
int dfs(int x, int y, int fx, int fy) {
if (x == fx && y == fy) {
return 1;
}
visited[x][y] = 1;
if (maze[x - 1][y] == 1 && visited[x - 1][y] == 0) {
if (dfs(x - 1, y, fx, fy)) {
printf("(%d,%d)\n", x - 1, y);
return 1;
}
}
if (maze[x + 1][y] == 1 && visited[x + 1][y] == 0) {
if (dfs(x + 1, y, fx, fy)) {
printf("(%d,%d)\n", x + 1, y);
return 1;
}
}
if (maze[x][y - 1] == 1 && visited[x][y - 1] == 0) {
if (dfs(x, y - 1, fx, fy)) {
printf("(%d,%d)\n", x, y - 1);
return 1;
}
}
if (maze[x][y + 1] == 1 && visited[x][y + 1] == 0) {
if (dfs(x, y + 1, fx, fy)) {
printf("(%d,%d)\n", x, y + 1);
return 1;
}
}
return 0;
}
int main() {
int sx, sy, fx, fy;
scanf("%d%d%d%d", &sx, &sy, &fx, &fy);
if (dfs(sx, sy, fx, fy)) {
printf("(%d,%d)\n", sx, sy);
} else {
printf("No path found.\n");
}
return 0;
}
```