用数组下标逐一对比所有元素的值,找到与指定值相等的元素,然后退出循环,并设置找到标志。
#incude<stdioh>
#define N 10
void main() { int a[N],i,k,b;
printf("请输入%d个整型数据:",N); for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
printf("请输入要查找的数据:"); scanf("%d",&k);
b=0; for ( i=0;i<N;i++ ) if ( a[i]==k ) { b=1; break; }
if ( b ) printf("数据位于数组第%d个元素。\n",i+1); else printf("数组中不包含%d这个数值。\n",k);
}
如果这n个二维数组维数相等,那就简单,做一个数组的数组allS
把这n个数据都做成数组,当成行放进去,取的时候计算一下行就行了,但是必须sn都是同维数矩阵
s1
=
[1,2;3,4];
allS
=
[s1];
s2=[5,6;7,8];
allS
=
[allS;
s2];
s3
=
[9,10;11,12];
allS
=
[allS;
s3];
取s2,这样,先根据2计算行下标,
(2-1)size(s2,1)+1:2size(s2,1)
列全取就是:
allS((2-1)size(s2,1)+1:2size(s2,1),
:);
==============
同理,去sn就是
allS((n-1)size(sn,1)+1:nsize(sn,1),
:);
没有找到合适的,最好自己写个循环吧
int i = 0;
while (i < arraylength && array[i] != val) i++;
如果找到了val,那么i就是下标;如果i==arraylength,表示没找到
如果你用的是ArrayList,那么有一个方法indexOf(val),如果找到,返回下标,否则返回-1
你只知道元素值,还是知道元素值的地址。
如果是只知道元素值,那只有用循环查找了。
如果是知道元素值的地址,那可以求出单个元素字节长度和数组首地址,
(被选元素地址
-
首地址)/(单个元素字节长度)。(注意:这里没有-1,是因为数组下标从0标记的)
例子:
#include
int
main()
{
int
i,
p,
q,
n,
a[10];
for(
i=0;
i<10;
i++
)
a[i]
=
i;
//求a[4]=4的下标
for(
i=0;
i<10;
i++
)
if(
a[i]
==
4
)
printf("元素4的下标为:%d\n",
i);
//第二种情况,假设我们不知道被选元素a[4],p=&a[4]中间经过了多重转换,已经不记得下标了
p
=
&a[4];
q
=
&a[0];
n
=
sizeof(&a[0]);
printf("下标为:%d",
(p-q)/n);
return
0;
}
string[] str = new string[] {"1","2","3","4","5","6"} ; //声明字符串数据str\x0d\ArrayList arr = new ArrayList(str); //声明一个ArrayList并载入str数组\x0d\int index = arrIndexOf("2"); //通过indexof函数找到2所在数组中的位置\x0d\MessageBoxShow("2在字符串数组第 " + (index + 1)ToString() + " 个位置!"); //然后d出数组中第几个数值是2(因为数组是从0开始的,所以这里使index + 1); 只取数组下标的话,可以将 +1这个 *** 作省去!就是\x0d\MessageBoxShow("2所在数组下标值为: " + indexToString()); //获取数组下标
以上就是关于如何获得数组中指定元素的下标值全部的内容,包括:如何获得数组中指定元素的下标值、matlab 如何提取数组的下标!、java通过数组值怎样获取数组下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)