读书人

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

发布时间: 2012-06-13 12:30:18 作者: rapoo

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

#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;} 

读书人网 >C++

热点推荐