这个代码有什么不对么?怎么不能输出???
#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
问题已经解决了,下面是标准答案、嘿嘿
#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));
for(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;
}
#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*n+j]); printf("迷宫为:\n"); for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%d ",maze[i*n+j]); printf("\n"); } return 0; }
噢 非常感谢、我那问题已经被我解决了、不过跟你的完全不一样、我用的二维数组。不过看了你的代码真的让我大开眼界、原来数组还可以这么用。。。