题目描述
输入一组数据(整数,不多于20个),查找指定的数据项是否存在
输入
正整数N(1≤N≤20),之后是N个整数,以及需要查找的数据
输出
如果找到指定的数据项,输出Yes否则输出No
样例输入
1 201505001
201505002
3 201505001 201505004 201505006
201505006
7 2015014040 2015014066 2015014088 2015014092 2015014086 2015014087 2015014026
2014015678
样例输出
No
Yes
No
可用顺序查找进行解题,即从第一个元素或最后一个元素开始,逐个把数据元素的关键字值和给定值比较,若某个元素的关键字值和给定值相等,则查找成功。否则,若直至第n个数据元素都不相等,说明不存在满足条件的数据元素,查找失败。在int search(int a[],int n,int k)中*a为查找表,n为表长,ch为关键词。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int search (int a[], int n, int ch)
{ int j=0,k=0;
for (j=0;j<n;j++)
if (ch==a[j])
k=1;
return k;
return 0;
}
int main()
{
int ch,n,a[25],i=0,k=2;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&ch);
k=search(a,n,ch);
if(k==0)printf("No\n");
else printf("Yes\n");
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)