乐离草 2022-06-02 16:43 采纳率: 50%
浏览 75
已结题

数据结构迷宫问题求解输入迷宫总是少一行怎么办?

问题遇到的现象和发生背景 求解迷宫问题直接把迷宫写入代码成功运行但是输入迷宫总是少一行
问题相关代码,请勿粘贴截图 Status InitMaze(MazeType *M){

//初始化迷宫数据
int i,j;
int COLUMN,ROW;
printf("请输入迷宫行数:");
scanf("%d",&ROW);
printf("请输入迷宫列数:");
scanf("%d",&COLUMN);
char mz[100][100];
M->maze=(char **)malloc(sizeof(char )(ROW+1));
M->footprint=(int **)malloc(sizeof(int )(ROW+1));
if(!M->maze||!M->footprint){
printf("申请空间失败,迷宫非法初始化.\n");
return ERROR;
exit(0);
}
for(i=0;i<=ROW;i++){
M->maze[i]=(char )malloc(sizeof(char)(COLUMN+1));
M->footprint[i]=(int )malloc(sizeof(int)(COLUMN+1));
if(!M->maze[i]||!M->footprint[i]){
printf("申请空间失败,迷宫初始化失败.\n");
return ERROR;
exit(0);
}
}
for(i=0;i<=ROW;i++){
for(j=0;j<=COLUMN;j++){
mz[i][j]='2';
M->footprint[i][j]=0;
}
}
printf("请输入迷宫\n");
for(i=1;i<=ROW;i++){

for(j=1;j<=COLUMN;j++){
    scanf("%d",&mz[i][j]);
    }

}
for(i=0;i<=ROW;i++){
for(j=0;j<=COLUMN;j++){
M->maze[i][j]=mz[i][j];
}
}
M->row=ROW;//行
M->column=COLUMN;//列
return OK;
}

运行结果及报错内容 无法正确输入迷宫怀疑将回车键一并输入但是不知道如何改正
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • 白驹_过隙 算法领域新星创作者 2022-06-02 16:47
    关注

    你输入迷宫是int类型的,但是定义的是char类型,所以不对
    scanf("%d",&mz[i][j])

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月4日
  • 已采纳回答 6月2日
  • 赞助了问题酬金20元 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 R语言爬虫的时候元素和园代码不一样怎么解决呀
  • ¥15 VS2022多项目启动有问题
  • ¥15 SQL删除添加数据后序号不连续问题。
  • ¥15 首次运行OmniEvent运行报错
  • ¥15 有没有人知道这个问题怎么解决
  • ¥15 comsol电力电缆载流量仿真
  • ¥15 webSocket可以接TCP socket接口吗
  • ¥60 mpi并行出错,CFD++计算
  • ¥15 c#:vsto,powerpoint的外接程序中换主题颜色
  • ¥15 状态机/汽车转向灯/Sateflow