C++编程问题
从一组已经排序的整数数组中查询某个整数x是否存在,要求用折半法,若有则输出位置,没有则输入提前信息~具体的编程
追问:来自手机问问追问同上一个人的
从一组已经排序的整数数组中查询某个整数x是否存在,要求用折半法,若有则输出位置,没有则输入提前信息~具体的编程
追问:来自手机问问追问同上一个人的
答案:#include <iostream>
using namespace std;int main()
{
int a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int min = 0;
int max = 9;
int s;
int temp;
cout << "please input the number you want search: ";
cin >> s;
while(min < max)
{
temp = (max+min)/2;
if(s > a[temp])
{
min = temp + 1;
}
else if(s < a[temp])
{
max = temp - 1;
}
else
break;
}
if(s == a[temp])
cout << "found! the location is " << temp << endl;
else
cout << "the number is not found!" << endl;
return 0;
}#include <stdio.h>
#include <stdlib.h>int main()
{
int a[8]={1,3,5,7,9,11,13,15};
int x; scanf("%d",&x);
int l=0;
int r=7;
int f=0;
while(l<r)
{
int m=(l+r)/2;
if(a[m]==x) { f=1; printf("Found at %d\n",m); break; }
if(a[m]<x) l=m+1;
else r=m;
}
if(!f) printf("%d not found\n",x);
return 0;
}
上一个:c++ 编写dll 示例
下一个:C++课程设计报告