二维数组元素个数怎么算啊!!!VB语言的,求!
4个回答
展开全部
先说没有option base XX情况:
例如a(3,4),第一维是3,第二维是4,数组就有(3+1)*(4+1)=20个元素,因为这时下界默认是0,等价于a(0 To 3,0 To 4)。
若是有option base XX,例如option base 1,a(3,4)就等价于a(1 To 3,1 To 4),数组就有3*4=12个元素。同理,option base 2,a(3,4)就等价于a(2 To 3,2 To 4),数组就有(3-1)*(4-1)=6个元素。。。
另外,option base 0 等同第一种情况,可以不写。
例如a(3,4),第一维是3,第二维是4,数组就有(3+1)*(4+1)=20个元素,因为这时下界默认是0,等价于a(0 To 3,0 To 4)。
若是有option base XX,例如option base 1,a(3,4)就等价于a(1 To 3,1 To 4),数组就有3*4=12个元素。同理,option base 2,a(3,4)就等价于a(2 To 3,2 To 4),数组就有(3-1)*(4-1)=6个元素。。。
另外,option base 0 等同第一种情况,可以不写。
更多追问追答
追问
没有option base ,那其他的情况呢,比如a(3,2to2,5),a(1,4to4)这样的???
追答
a(3,2to2,5)有(3+1)*1*(5+1)=24个,a(1,4to4)有(1+1)*1=2个。
没有option base 时,维数如果是单独一个数字,就从0开始算到维数,如a(3,2to2,5)中的第一维数字是3,从0开始算0,1,2,3就有4位;b To c的就从b数到c,数值上就是(c-b+1),a(3,2to2,5)中第二维2 to 2就是2-2+1=1,共有1 位,依次算出各维的位数,做乘积就是数组的元素个数了。多维数组也是如此。
展开全部
数组 arr(x to y,n to m)
每一维的个数公式:上界 - 下界 +1
第一维:ubound(arr,1) - lbound(arr,1) +1
第二维:ubound(arr,2) - lbound(arr,2) +1
总个数:
n = (ubound(arr,1) - lbound(arr,1) +1) * (ubound(arr,2) - lbound(arr,2) +1)
将数组的名字替换公式中的 arr,就可以计算出个数 n ,与option base 什么的都没关系
-------
数组 Dim a(3, 2 to 2,5) 是3维的,不是2维
n = (3-0+1)*(2-2+1)*(5-0+1) = 24
给出的选项有问题啊,或者是你的题目写错了?
如果定义了
option base 1
则
n = (3-1+1)*(2-2+1)*(5-1+1) = 15
选项中也没有啊
每一维的个数公式:上界 - 下界 +1
第一维:ubound(arr,1) - lbound(arr,1) +1
第二维:ubound(arr,2) - lbound(arr,2) +1
总个数:
n = (ubound(arr,1) - lbound(arr,1) +1) * (ubound(arr,2) - lbound(arr,2) +1)
将数组的名字替换公式中的 arr,就可以计算出个数 n ,与option base 什么的都没关系
-------
数组 Dim a(3, 2 to 2,5) 是3维的,不是2维
n = (3-0+1)*(2-2+1)*(5-0+1) = 24
给出的选项有问题啊,或者是你的题目写错了?
如果定义了
option base 1
则
n = (3-1+1)*(2-2+1)*(5-1+1) = 15
选项中也没有啊
追问
你确定吗,这是我们计算机教学平台题库里面的原题啊,真没错~~~
先谢谢你了啊~~
追答
确定,非常确定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*用C语言求二维数组中的这样的一个元素位置:
在行上最小,在列上也最小。如果没有这样的数则输出相应信息。
*/
#define ROW 3 //数组行数
#define COL 3 //数组列数
#include <iostream>
using namespace std;
void search(int array[ROW][COL],int m,int n) //m为数组行数,n为数组列数
{
int temp=array[0][0];
int posx,posy;
int i,j,k;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
if (array[i][j]<temp) //查找该行最小的数
{
temp=array[i][j];
posx=i,posy=j;
}
if (j==n-1) //比较在该列是不是最小的数
{
for (k=0;k<m;k++)
{
if(array[k][posy]<temp)
temp=0;
}
if (temp!=0)
{
cout<<"Row="<<posx+1<<" Col="<<posy+1<<" Vauel="<<temp<<endl;
}
if (i<m-1) //查找下一行
{
temp=array[i+1][0];
posx=i+1,posy=0;
}
}
}
}
int main()
{
int a[2][3]=,};
//调用查找函数,第一个参数是数组名,
//第二个参数是数组行数,第三个参数是数组列数
search(a,2,3);
return 0;
}
在行上最小,在列上也最小。如果没有这样的数则输出相应信息。
*/
#define ROW 3 //数组行数
#define COL 3 //数组列数
#include <iostream>
using namespace std;
void search(int array[ROW][COL],int m,int n) //m为数组行数,n为数组列数
{
int temp=array[0][0];
int posx,posy;
int i,j,k;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
if (array[i][j]<temp) //查找该行最小的数
{
temp=array[i][j];
posx=i,posy=j;
}
if (j==n-1) //比较在该列是不是最小的数
{
for (k=0;k<m;k++)
{
if(array[k][posy]<temp)
temp=0;
}
if (temp!=0)
{
cout<<"Row="<<posx+1<<" Col="<<posy+1<<" Vauel="<<temp<<endl;
}
if (i<m-1) //查找下一行
{
temp=array[i+1][0];
posx=i+1,posy=0;
}
}
}
}
int main()
{
int a[2][3]=,};
//调用查找函数,第一个参数是数组名,
//第二个参数是数组行数,第三个参数是数组列数
search(a,2,3);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Lbound(数组名[,维数])-返回数组指定维数的下界
Ubound(数组名[,维数])-返回数组指定维数的上界
省略维数,默认为第1维。
Dim a(-3 To 2, 5)
Print LBound(a, 2), UBound(a, 2) 【0 5】
Print LBound(a), UBound(a) 【-3 2】
该函数返回(下界与上界)在定义数组时确定,与数组的元素值无关。
Ubound(数组名[,维数])-返回数组指定维数的上界
省略维数,默认为第1维。
Dim a(-3 To 2, 5)
Print LBound(a, 2), UBound(a, 2) 【0 5】
Print LBound(a), UBound(a) 【-3 2】
该函数返回(下界与上界)在定义数组时确定,与数组的元素值无关。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询