主题:[讨论]C++基础编程:折半查找法
C++基础编程:折半查找法
C++基础编程
有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则打印出“无此数”。要求用C++编程
#include <iostream>
using namespace std;
int main()
{
void Search(int x,int array[]);
int a[15]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1},x;
cout<<"input a number:";
cin>>x;
Search(x,a);
return 0;
}
void Search(int x,int array[])
{
int mid,low=1,high=15,target=0;
while(low<=high && target==0)
{
mid=(low+high)/2;
if(x==array[mid])
{
cout<<"该数是数组中的第"<<mid<<"数"<<endl;
target=1;
}
else if(x<array[mid]) high=mid-1;
else low=mid+1;
}
if(target==0) cout<<"数组中找不到该数"<<endl;
}
以上是我编的一段代码,输入12运行结果却是“数组中找不到该数”,求各位指定迷津,我这段程序哪出错了,望指点。。。感激不尽。。。
C++基础编程
有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则打印出“无此数”。要求用C++编程
#include <iostream>
using namespace std;
int main()
{
void Search(int x,int array[]);
int a[15]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1},x;
cout<<"input a number:";
cin>>x;
Search(x,a);
return 0;
}
void Search(int x,int array[])
{
int mid,low=1,high=15,target=0;
while(low<=high && target==0)
{
mid=(low+high)/2;
if(x==array[mid])
{
cout<<"该数是数组中的第"<<mid<<"数"<<endl;
target=1;
}
else if(x<array[mid]) high=mid-1;
else low=mid+1;
}
if(target==0) cout<<"数组中找不到该数"<<endl;
}
以上是我编的一段代码,输入12运行结果却是“数组中找不到该数”,求各位指定迷津,我这段程序哪出错了,望指点。。。感激不尽。。。