C语言如何建立一个二维数组

就是建立一个二维数组但是数组的长宽要随着变量的变化而变化。很急给我点具体点的啊,他们说的都有道理但是这也太难为我这个初学的了,最好能给我举个例写源代码... 就是建立一个二维数组但是数组的长宽要随着变量的变化而变化。很急
给我点具体点的啊,他们说的都有道理但是这也太难为我这个初学的了,最好能给我举个例写源代码
展开
 我来答
lmocvce
2008-10-10 · TA获得超过1385个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:454万
展开全部
刚刚看错了,原来是C语言,这样就好了.
输入m,n

int m,n;
int i,j;
scanf("%d%d",&m,&n);
int **mm=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
mm[i]=(int*)malloc(n*sizeof(int));

这就建了一个二维数组mm[m][n]了.
使用时,就直接mm[i][j]就可以了.

先输入行数m,列数n
然后输入一个m*n的矩阵
然后输出这个矩阵.

#include <stdio.h>
#include <malloc.h>
void main() {
int m,n;
int i,j;
scanf("%d%d",&m,&n);
int **mm=(int**)malloc(sizeof(m*sizeof(int*)));
for(i=0;i<m;i++)
mm[i]=(int*)malloc(sizeof(n*sizeof(int)));
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
scanf("%d",&mm[i][j]);
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("%d ",mm[i][j]);
printf("\n");
}
}
tobetterlife
2008-10-10 · TA获得超过741个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:252万
展开全部
http://www.pcworld.com.cn/how_to_use/1/2006/1222/9180.shtml
C语言中实现动态分配二维数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
50573750
2008-10-10 · TA获得超过976个赞
知道大有可为答主
回答量:1800
采纳率:100%
帮助的人:0
展开全部
1L不负责任,不给具体的,只让人看文章!

这你的用动态内存来实现!

int *pD = (int*)molloc(m*n*sizeof(int));//声明一个数组!
*(pD+(i-1)*n+j);//调用数组的第ij个元素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宁芳泽荀城
游戏玩家

2019-09-06 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:895万
展开全部
这样的输出是不正确的。(我这里输出是-72
-66
-60,可能你那不是这结果)。
1、a[b]是二维中的首维数组了,如果真是取其数据的话,应该用指针才对(也就是*a[b])
2、数组起始索引是从0开始的,而你用了b=1
-
3
的循环(越界了),b应该从0--2做循环
3、如果你是按如下代码的话,输出就是:147

for(b=0;b<=2;b++)

printf("%d",*a[b]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式