用malloc输入矩阵

来源:百度知道 编辑:UC知道 时间:2024/07/02 09:11:10
void main()
{
int m,n,i;
scanf("%d,%d",&m,&n);
int** p1=NULL;
p1=(int**)malloc(m*sizeof(int*));
int* pline1=NULL;
pline1=(int*) malloc(n*sizeof(int));
for (i=0;i<m;i++)
{
scanf("%d",pline1);
p1[i]=pline1;
}
for (i=0;i<m;i++,p1++)
{
printf("%4d",*p1);
}

}

输出的是一个很大的数 我是菜鸟 对指针掌握不是很好 希望高手指点

#include <stdio.h>
#include <stdlib.h>

int main()
{
int m,n,i,j;
printf("要创建a[m][n]\n");
printf("m:");
scanf("%d",&m);
printf("n:");
scanf("%d",&n);
int** p1=NULL;
p1=(int**)malloc(m*sizeof(int*)); //指针数组,p1是一个二维指针,指向这个数组的第一个元素
for (i=0;i<m;i++) //每次循环使指针数组的一个指针指向一个数组
{
int * pline1=NULL;
pline1=(int*) malloc(n*sizeof(int)); //分配数组空间
*(p1+i)=pline1; //使指针数组的一个指针指向这个数组
for(j=0;j<n;j++)
{
printf("请输入a[%d][%d]: ",i,j);
scanf("%d",pline1+j);
}
}
for (i=0;i<m;i++) //输出
{
for(j=0;j<n;j++)
printf("%4d",*(*(p1+i)+j)); //注意格式
printf("\n");
}

return 0;

}

以你的思路写的,在脑海里面把图规划出来编程就容易多了,加了些提示输入的语句,这也是个好习惯,要不除了你别人都不知道输入什么,这个在vc6上通过编译,有什么不懂留言就好了