用c++语言写一个程序有15个书按由大到小存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组的第几个元素的值。若不在这个数组中则打印“无此数”
时间: 2024-02-12 08:07:12 浏览: 62
好的,以下是用C++语言编写的程序,实现了按照从大到小的顺序存放15个数,并使用折半查找法查找给定的数在数组中的位置:
```
#include <iostream>
using namespace std;
int main() {
int arr[15] = { 99, 88, 77, 66, 55, 44, 33, 22, 21, 20, 19, 18, 17, 16, 15 };
int target;
int left = 0;
int right = 14;
int mid;
bool found = false;
cout << "请输入一个数:";
cin >> target;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == target) {
found = true;
cout << "该数是数组的第" << mid + 1 << "个元素的值" << endl;
break;
}
else if (arr[mid] < target) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
if (!found) {
cout << "无此数" << endl;
}
return 0;
}
```
程序中首先定义了一个包含15个数的数组`arr`,然后根据从大到小的顺序进行了初始化。接着,程序要求用户输入一个数`target`,并利用折半查找法在数组中查找该数。如果找到了,程序输出该数在数组中的位置;如果没找到,程序输出“无此数”。
阅读全文