在运行时输入迷宫并输出路径

img


要用纯C语言写出,并且是要在运行时输入迷宫,我只成功的写出来在代码里输入迷宫,但如何在运行时输入迷宫并成功输出一直未能成功。


#include "stdio.h"
void search(int i,int j);  //路径寻找,要求使用递归
int arr[8][8]; 

int n=0;
int c=1;

int main( )
{   
    int i,j;
    /*
0  0  0  1  0  0  0  0  
0  1  1  1  1  1  1  1  
0  0  0  1  0  0  0  1  
0  1  0  1  0  1  0  1  
0  1  0  0  0  1  0  1  
0  1  1  1  1  1  0  1  
0  1  0  0  0  1  0  0  
0  1  0  0  0  0  1  0  

    */
    printf("输入自定义迷宫:\n"); 
    for(i=0;i<8;i++)
        for(j=0;j<8;j++)
        { 
            scanf("%d",&arr[i][j]); 
        } 
    search(0,0);
    for(i=0;i<8;i++)
    {
        for(j=0;j<8;j++)
            printf("%3d",arr[i][j]);
        printf("\n");
    }
    printf("共有%d种方案\n",n);
    return 0;   
}

void search(int i, int j)
{   
    if(i==7 && j==7)
    {
        arr[i][j]=c;
        n++;
    }
    if(i<0 || j<0 || i>7 || j>7)    return 0;
    if(arr[i][j]>0) return 0;
    arr[i][j]=c;
    c++;
    if(n==0)
    search(i+1,j);
    if(n==0)
    search(i-1,j);
    if(n==0)
    search(i,j+1);
    if(n==0)
    search(i,j-1);
    if(n==0) {arr[i][j]=0;c--;}
}

img


数字就是路径 你也可以改成你的 字母儿