(C++)十个数字的简单对分查找
#include<iostream>
using namespace std
;
int dorank(int key
, int a
[])
{
int lo
, hi
;
lo
= 0;
hi
= 9;
while (lo
<= hi
)
{
int mid
= lo
+ (hi
- lo
) / 2;
if (key
< a
[mid
])
hi
= mid
- 1;
else if (key
> a
[mid
])
lo
= mid
+ 1;
else
return mid
;
}
return -1;
}
int main()
{
int a
[10] = { 0 };
int i
, aim
, j
;
cout
<< "Please enter 10 numbers." << endl
;
for (i
= 0; i
< 10; i
++)
{
cin
>> a
[i
];
}
cout
<< "Please enter your number." << endl
;
cin
>> aim
;
j
= dorank(aim
, a
);
if (aim
== j
)
{
cout
<< "Congratulations ! You find it." << endl
;
}
else if (j
== -1)
{
cout
<< "No numbers." << endl
;
}
return 0;
if语句中判断条件是==,而不是单个等号(赋值),如果是单个等号,那个if语句条件一定成立。
转载请注明原文地址:https://blackberry.8miu.com/read-4286.html