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

我详细解释下,是这样的,我要做一个数列N项查找程序(无论是等比还是等差或其他什么的)。假设有一个已经定义好的数组(无论是初始化还是逐个),现在我要制作一个输入查找程序,这... 我详细解释下,是这样的,我要做一个数列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项查找程序要用到函数和指针的话,请指导下,我还不会用指针和函数。
展开
 我来答
刺友互
高粉答主

2020-02-19 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:69.8万
展开全部

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

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

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

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

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

kaixingui2012
推荐于2017-09-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6342万
展开全部

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

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

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

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

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

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

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

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

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

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

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

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

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

参考代码:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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");
}//看看符合不符合你的要求,如果满意请采纳,谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2014-01-04 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3447万
展开全部
对于有序序列,较为实用的是“二分查找”,或叫做“折半查找”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式