二分查找 先输入数据库的个数再一一录入数据 然后输入要查找对象的个数再一一录入对象 最后依次输出对象是否在数据库中的结论
2017-11-21 18:41
429 查看
#include<stdio.h>
#include<math.h>
int a[100000]={0};
int b[100000]={0};
int c[100000]={0};
int main()
{
int num;
int n;
int i;
int left,right,middle;
int sum;
scanf("%d\n",&num);
for(i=0;i<num;i++)
{
if(i<num-1)
{
scanf("%d ",&a[i]);
}
else
{
scanf("%d\n",&a[i]);
}
}
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
if(i<n-1)
{
scanf("%d\n",&b[i]);
}
else
{
scanf("%d",&b[i]);
}
}
sum=0;
while(sum<=n)
{
left=0;
right=num;
while(left<=right)
{
middle=(left+right)/2;
if(b[sum]==a[middle])
{
c[sum]=1;
break;
}
else if(b[sum]>a[middle])
{
left=middle+1;
}
else if(b[sum]<a[middle])
{
right=middle-1;
}
}
sum=sum+1;
}
for(i=0;i<n;i++)
{
if(c[i]==0)
{
printf("No\n");
}
if(c[i]==1)
{
printf("Yes\n");
}
}
return 0;
}
#include<math.h>
int a[100000]={0};
int b[100000]={0};
int c[100000]={0};
int main()
{
int num;
int n;
int i;
int left,right,middle;
int sum;
scanf("%d\n",&num);
for(i=0;i<num;i++)
{
if(i<num-1)
{
scanf("%d ",&a[i]);
}
else
{
scanf("%d\n",&a[i]);
}
}
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
if(i<n-1)
{
scanf("%d\n",&b[i]);
}
else
{
scanf("%d",&b[i]);
}
}
sum=0;
while(sum<=n)
{
left=0;
right=num;
while(left<=right)
{
middle=(left+right)/2;
if(b[sum]==a[middle])
{
c[sum]=1;
break;
}
else if(b[sum]>a[middle])
{
left=middle+1;
}
else if(b[sum]<a[middle])
{
right=middle-1;
}
}
sum=sum+1;
}
for(i=0;i<n;i++)
{
if(c[i]==0)
{
printf("No\n");
}
if(c[i]==1)
{
printf("Yes\n");
}
}
return 0;
}
相关文章推荐
- 从命令行输入5个整数,放入一整型数组,然后打印输出。要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。 无论是否发
- 输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符.cpp
- 从键盘输入4个学生的有关数据,然后把它们保存到磁盘文件中,最后从磁盘文件中读取数据输出到屏幕
- Problem Description 求n个数的最小公倍数。 Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。 Output 为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。 Sample
- 从命令行输入5个整数,放入一整型数组,然后打印输出。要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。 无论是否发
- 61.从键盘输入10个正数存入数组x中,然后输入要查找的整数a,如找到则输出a及a的下标,如找不到,则把a存入到数组的最后。
- 从命令行输入5个整数,放入一整型数组,然后打印输出。要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。 无论是否发
- 定义员工类employee ,员工有姓名,年龄,工号属性, 员工有工作的方法, 键盘录入三组数据, 数据格式(姓名,年龄,工号) 例如:张三,23,9527; 通过数据,创建员工对象, 然后通过对
- 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后程序就查找该班有无此学生,如果有,则输出他的姓名和学号,如果找不到
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中
- Problem Description 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 Input 输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。 O
- 【ASP】从URL获取中文字符然后查找数据库后输出GBK中文
- 一月十日练习习题,1数组数据存入字典并输出2降序 和倒叙 输出数组中内容3对字符串当中信息进行查找是否存在4 把数组当中信息按照中文排序
- *(5)输入互不相同的一组整数,构造一棵二叉排序树,要求: ① 按递减有序的顺序输出; ② 输入一个整数,查找该整数是否在该二叉排序树中,查找成功返回1,否则返回0; ③ 在②中,若查找成功,则将该结
- 输入n个不同的数,查找一个数,然后输出,如果不存在就输出-1
- 数据结构中的折半查找,查找对象为有序数组。用getchar()在写出输入字母输出相应的大小写。
- 对标准的输入的读取数据进行压缩,然后将其写到标准的输出
- 采用指针访问方式从键盘给数组a[N]输入数据,然后对元素值重新按逆序存放并输出
- 课堂练习2: 从命令行输入5个整数,放入一整型数组,然后打印输出。要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”