C语言一维数组中如何查找指定元素?

我详细解释下,是这样的,我要做一个数列N项查找程序(无论是等比还是等差或其他什么的)。
假设有一个已经定义好的数组(无论是初始化还是逐个),现在我要制作一个输入查找程序,这个查找程序是这样的,我输入我要查找的第N项元素以及输出这个元素以及这个元素对应的数值。

假设数组a=[20]={2,4,6,8,10},现在我要查找数组中第4项元素,虽然我已经知道第4项元素对应的数值是8,但是要是数组元素很长怎么办?所以就产生我想制作一个数列N项查找程序。

以下是我写的,不过程序不对,请大家帮我改一下。

#include <stdio.h>
#include <stdlib.h>

void main()

{
int i,n,f;
long int a[20]={2,4};
for(i=2;i<20;i++)
{
a[i]=a[i-1]+2;
}
while(1)
{
printf("输入元素号:");
scanf("%d,",f);
switch(f)
{
for(i=0,n=1;i<20&&n<21&&n==f;i++,n++)
{

printf("元素的数值:%d\n",a[i]);

}
}
}

system("pause");
}

我的C语言水平只学到二维数组那里,还没有学函数,指针什么的。,如果我提出的数列N项查找程序要用到函数和指针的话,请指导下,我还不会用指针和函数。

1、打开pycharm,新建Test_List.py,如图所示。

2、定义lista=('A','B','C','D','E'),使用len函数来判断数组长度,ALT+F10执行后可以看到结果是5,注意获取列表的值用【数组名+[序号]】。

3、通过【数组名+[序号]】可以获取数组里指定位置的元素值,有个前提是【指定位置】必须小于数组长度。

4、碰到这种复杂的数组,想要获取指定位置的值,就必须明确指定位置。

5、复杂数组想要获取正确的结果,指定的位置必须是【数组索引】。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-27

在一维数组中查找指定元素的方法:

    首先,定义数组,并对数组元素进行赋值

    输入位置值,输出相应的元素值(即:查找指定位置的元素)

      先判断位置是否合法,不合法,则输出位置错误,请重新输入

      位置合法,则把位置值转为数组下标,通过下标来确定数据,进行输出,如:第一个元素的下标为0,第二个为1等等

    输入一个数值,输出相应的下标(即:查找指定元素的位置)

      循环遍历数组,检查数组中的各位数据是否与待查数值相等

        如果相等,则提前结束循环:break;

        否则,继续循环,检查下一个数

      遍历完所有数组元素后,结束循环

      循环结束后,检查循环变量值是否超过数组元素总数,

        如果未超过,表示找到了相应数据,输出其下标位置,

        否则,输出未找到相应元素。

参考代码:

第2个回答  2014-01-04
#include <stdio.h>
#include <stdlib.h>

void main()
{
int i,f;
long int a[20]={2,4};
for(i=2;i<20;i++)
a[i]=a[i-1]+2;
   while(1)
   {
printf("输入元素号:");
scanf("%d,",&f);
if(f<=21&&f>=1)
printf("元素的数值:%d\n",a[f-1]);
else
printf("超出数组范围\n");    
}
system("pause");
}//看看符合不符合你的要求,如果满意请采纳,谢谢

本回答被提问者采纳
第3个回答  2014-01-04
对于有序序列,较为实用的是“二分查找”,或叫做“折半查找”。