C语言迷宫问题无语法错误,不能运行

这个程序是写随机生成迷宫的,在我的电脑上运行没有语法错误,但是没有运行结果,


#include
#include
#include
void CreateMaze(int a,int b);
void CreateMaze(int a,int b){     //随机生成迷宫并打印
    int arr[a][b];
    int i=0,j=0;
    for(i;i-1;i++){        //将迷宫的最外面包裹一堵墙,然后里面的随机产生墙或通路
        for(j;j-1;j++){
            if(j==b-1)
                printf("\n");
            if(i==0||j==0||i==a-1||j==b-1){
                arr[i][j]=1;
                printf("%d",arr[i][j]);
            }   
            else{
                srand((unsigned int)time(NULL));
                int ret=rand()%2;
                arr[i][j]=ret;
                printf("%d",arr[i][j]);    
            }
        }
    }
    arr[1][1]=0;         //设置入口
    arr[a-2][b-2]=0;     //设置出口
}
int main(){
    int a,b;
    scanf("%d,%d",&a,&b);
    CreateMaze(a,b);
    return 0;
}

你指的没有运行结果是什么? 我看你这个需要控制台先输入两个数a和b【a表示迷宫的行数,b表示迷宫的列数】,才会执行创建迷宫的函数,你输入了嘛?

不知道是不是你要的效果,如下:

img

代码如下,自己可以优化:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void CreateMaze(int a,int b);
void CreateMaze(int a,int b){ // 随机生成迷宫并打印    
    int arr[a][b];
    int i,j;
    srand((unsigned int)time(NULL));
    // 将迷宫的最外面包裹一堵墙,然后里面的随机产生墙或通路
    for(i = 0; i < a; i++)
    {        
        for(j = 0; j < b; j++)
        {
            // 迷宫的最外层是一堵墙
            if(i==0 || j==0 || i==a-1 || j==b-1)
            {
                arr[i][j] = 1;
                printf("%2d", arr[i][j]);
            }   
            else
            {
                if ((i == 1 && j == 1) || (i == (a - 2) && j == (b - 2)))
                {
                    arr[i][j] = 0;         // 设置入口或出口
                }
                else 
                {
                    int ret = rand() % 2; // 生成 0 或 1的随机数
                    arr[i][j] = ret;
                }
                printf("%2d", arr[i][j]);    
            }
            if(j == b - 1)
                printf("\n");
        }
    }
    
}
int main(){
    int a,b;
    scanf("%d,%d",&a,&b);
    CreateMaze(a,b);
    return 0;
}


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!