| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1311 人关注过本帖
标题:[求助]关于数组初始化的烦恼~~
取消只看楼主 加入收藏
上大阿Ben
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-11
收藏
 问题点数:0 回复次数:2 
[求助]关于数组初始化的烦恼~~

请教各位高人,怎么样能做到根据输入者的要求确定数组的大小?
书上说不能把变量作为数组的下标的!!那怎么办呢?
用new指令吗?能告诉我一下原理吗?

搜索更多相关主题的帖子: 烦恼 
2006-11-11 10:36
上大阿Ben
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-11
收藏
得分:0 
……我的表达不好吧……
我的意思是,例如:
int num;
printf(“请输入二维数组的行数”);
scanf("%d",&num);
int a=num;
printf("请输入二维数组的列数");
scanf("%d",&num);
int b=num;
double c[a][b];
这里在检测时提示不能把变量作为下标,那么如果我想根据a,b来确定二维数组的行数与列数时,该怎么办呢?

2006-11-11 11:23
上大阿Ben
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-11
收藏
得分:0 

谢谢大家,我得到了一个不错的答案并且上机试验过了,效果不错:
//动态构造并初始化二维数组"array"
void build(void)
{
double **array,size;
label:cout<<"请输入行列式的阶\n";
cin>>size;
if(size>=1&&(int)size==size)
{
array = (double**)malloc(sizeo(doublef*)*size);
for( int i=0; i<size; i++ )
{
array[i] = (double*)malloc(sizeof(double)*size);
}
for( int a=0;a<size;a++)
for(int b=0;b<size;b++)
{
cout<<"请输入第"<<a+1<<"行第"<<b+1<<"列的数\n";
cin>>array[a][b];
}
}
else
{
cout<<"\a输入错误,请重新输入\n";
goto label;
}
}
但是其中两句有些不明白:
array = (double**)malloc(sizeo(doublef*)*size);
array[i] = (double*)malloc(sizeof(double)*size);
哪位高手能解释得详细一些呢?
还有,为什么第二句要用循环语句而第一句不用呢?
麻烦解释一下我真得很想弄明白谢谢!!

2006-11-19 15:18
快速回复:[求助]关于数组初始化的烦恼~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015633 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved