乐离草 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 husky+kinova jaco2 仿真
  • ¥15 MATLAB数据处理
  • ¥15 zigbee终端设备入网失败
  • ¥15 金融监管系统怎么对7+4机构进行监管的
  • ¥15 硬件IIC从模式的数据发送,中断数据的接收,不能用HAL库(按照时序图)
  • ¥20 QAxWidget上显示一个word文档后,如何直接在该QAxWidget上修改和保存word文档
  • ¥15 Simulink仿真报错,请问如何解决
  • ¥20 宝塔面板无法添加Node项目,一直处于正在添加脚本页面
  • ¥50 Dkeil5 CT107D单片机的程序编写
  • ¥30 Ubuntu20.04中PVN3D复现过程交叉编译问题