我试图找到退出迷宫的最佳方式([N] [N]阵列,N <20)其中1是通道,0是墙。 从左上角[0] [0]开始,从右下角[N-1] [N-1]退出。
我收到以下错误: 错误C2371:'is_min':重新定义;不同的基本类型
知道我做错了什么吗? 提前谢谢
int search_path(int n, int maze[][N], int i, int j){
int maxlen = 400;
int current_best;
if (maze[i][j] == 0) return False;
if (maze[i][j] == -1) return False;
if (i==N-1 && j==N-1 ) return True;
maze[i][j] = -1;
if(i < N-1)
is_min(n,maze,i,j+1,&maxlen);
if (i >0 )
is_min(n,maze,i-1,j,&maxlen) ;
if (j < N-1 )
is_min(n,maze,i,j+1,&maxlen) ;
if (j >0 )
is_min(n,maze,i,j-1,&maxlen);
maze[i][j] = 1;
if ((maxlen == 400)||(maxlen ==0))
return False;
return maxlen+1;
};
void is_min(int n, int maze[][N], int i, int j, int *maxlen){
int current_best = search_path(n,maze, i, j);
if ((current_best < *maxlen) && (current_best > 0)){
*maxlen = current_best;};
};
void path(int n, int maze[][N])
{
//find best path, starting from 0,0
int best = search_path(n, maze, 0,0);
if (best == 0){
printf("No path found!\n");}
else
printf("Shortest path length is:%d\n", best);
}