c语言中定义一个二维数组

定义一个二给数组,要求此二维数组的行和列由键盘输入,然后再从键盘输入数字,对此二维数组进行初始化.
程序怎么样写?

int a[100][100]; //先把数组定义的大点
int n,m,i,j;
printf("请输入行数:");
scanf("%d",&n);
printf("请输入列数:");
scanf("%d",&m);
printf("请输入%d行%d列数字\n",n,m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",a[i][j]);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-25
比较优化的写法是,根据需要分配内存空间,使用二维指针,要增加头文件#include<stdio.h>
#include<stdlib.h>
main()
{
int a,b,i,**number;
scanf("%d%d",&a,&b);//输入行,列数
*number=(int *)malloc(a*sizeof(int));
for(i=0;i<a;i++)
number=(int**)malloc(b*sizeof(int));
}
第2个回答  2010-07-25
简单点说 就不给代码了 累。。。
思路就是用for循环 两层循环就ok了
for(int i=0;i<多少多少;i++)
{
for(int j=0;j<多少多少;j++)

输入那个语句忘了。。。汗。。。

第3个回答  2010-07-29
不可能的事
因为二维数组的行与列必须为常量