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
对于有序序列,较为实用的是“二分查找”,或叫做“折半查找”。

C语言一维数组中如何查找指定元素?
1、打开pycharm,新建Test_List.py,如图所示。2、定义lista=('A','B','C','D','E'),使用len函数来判断数组长度,ALT+F10执行后可以看到结果是5,注意获取列表的值用【数组名+[序号]】。3、通过【数组名+[序号]】可以获取数组里指定位置的元素值,有个前提是【指定位置】必须小于数组长度。

如何用c语言编写查询数组中的元素
最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。下面是一个简单的对一维数组进行查询的样例。函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。函数名:array_query 函数声明: int array_query(int *a, int n, ...

...急需!输入一个一维整型数组,并找出数组元素中最大值和最小值及其相 ...
折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部...

...C语言 怎么写1已知一个班20个学生的成绩,存放在一个一维数组中...
char *argc[]){char s[20],i,m;srand((unsigned)time(NULL));printf("Students' scores are as follows:\\n");for(m=i=0;i<20;i++){printf("%-4d",s[i]=rand()%100+1);\/\/模拟输入20人的成绩if(s[m]

C语言数组怎么调用
有好几种方法,我稍微说一下,你回去找书看一看:通过数组首地址 指针 带下标的指针引用一维数组元素。引用一维数组中的某一个元素的方法::求当前地址的内容 & :求当前内容的地址 1 a【i】2 *&a【i】 \/\/*在定义语句时代表定义一个指针变量,当在执行语句部分时代表间址运算符,引用...

C语言:定义一个包含10个元素的一维数组找出其中的最大值让其与第一个...
void main(){ int i, a[10], max, min, pmax, pmin, tmp;srand(time(NULL));for(i=0; i<10; i++){ a[i] = rand()%100+0;} printf("这十个数分别为:\\n");for (i=0; i<10; i++){ printf("%d\\t", a[i]);} max = a[0];pmax = 0;for(i=1; i<10; i...

...急需!输入一个一维整型数组,并找出数组元素中最大值和最小值及其相 ...
void main(){ int a[LEN]={0},i,j,min=0,iMin=0,max=0,iMax=0;printf("请个输入整型数组元素(输入0表示输入结束):\\n");for (j=0; j<LEN; j++){ scanf("%d", &a[j]);if (a[j] == 0)break;}min=max=a[0];for (i=1; i<j; i++){ if (a[i]<min){ min =...

C语言编程:利用指针编写程序,求一维数组中的最大和最小的元素值
int main(){ int a[111],max,min,*p,n,k=0;p=a;\/\/指针p指向数组a首地址 do{ scanf("%d",&n);p[k++]=n;}while(getchar()!='\\n');max=min=p[0];for(p=a;pmax)max=*p;if(*p<min)min=*p;} printf("max=%d,min=%d",max,min);return 0;} ...

C语言,编写find函数,在一维数组x中查找是否有key,若有返回该数组元素下...
}void main(){int n,i,m;int a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);scanf("%d",&m);n=find(a,10,m);\/\/把这个放外面更好 if(n!=-1)\/\/你要传入的是数组即传入一个数组指针,a[10]是一个数组元素的值 ,你最主要的错误就是这里 printf("...

c语言一维数组赋值方法
C语言中一维数组的赋值方法:一维数组赋值操作是在数组中设置每个元素的特定值。下面详细说明一维数组的赋值方法:一、声明数组的同时进行初始化赋值 在定义数组时,可以直接给数组元素赋予初值。例如:c int arr[5] = {1, 2, 3, 4, 5}; \/\/ 声明并初始化一维数组 这种方法的优点是方便简洁,缺点...

相似回答