首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

【帮忙看个二维数组的输入输出】,该怎么处理

2012-06-13 
【帮忙看个二维数组的输入输出】这个代码有什么不对么?怎么不能输出???#includestdio.h#includestdlib.h

【帮忙看个二维数组的输入输出】
这个代码有什么不对么?怎么不能输出???

#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j,m,n;
int **maze;
printf("请输入迷宫范围(m行n列,空格隔开):");
scanf("%d%d",&m,&n);
maze=(int **)malloc((m*n)*sizeof(int *));
printf("请输入迷宫(0表示通,1表示障碍物):\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&maze[i][j]);
printf("迷宫为:\n");
for(i=0;i<m;i++){
for(j=0;j<n;j++)
printf("%d ",maze[i][j]);
printf("\n");
}
return 0;
}

[解决办法]

C/C++ code
maze=(int *)malloc((m*n)*sizeof(int));for(int i=0; i < m*n; ++i)   maze[i]=(int *)malloc(sizeof(int))
[解决办法]
C/C++ code
#include<stdio.h>#include<stdlib.h>int main(){int i,j,m,n;int **maze;printf("请输入迷宫范围(m行n列,空格隔开):");scanf("%d%d",&m,&n);//maze=(int **)malloc((m*n)*sizeof(int *));//二维数组不是像你那样动态分配的,具体的应该是这样的maze=(int *)malloc((m*n)*sizeof(int));for(int i=0; i < m*n; ++i)  maze[i]=(int *)malloc(sizeof(int))printf("请输入迷宫(0表示通,1表示障碍物):\n");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d",&maze[i][j]);printf("迷宫为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%d ",maze[i][j]);printf("\n");}return 0;} 

热点排行