编写一个C++程序,按从大到小的顺序输入10个int类型的数据讲起存放在一个一维数组中,再输入一个整数到变量x,用二分法查找x是否是数组中的元素,若是,输出其在数组中的位置,否则输出不在数组中的提示。
时间: 2024-10-22 21:17:14 浏览: 24
首先,让我们编写一个简单的C++程序来完成这个任务。我们将创建一个`main()`函数,其中包含用户输入、数组初始化、以及二分查找功能。
```cpp
#include <iostream>
using namespace std;
// 二分查找函数
int binarySearch(int arr[], int size, int x) {
int low = 0;
int high = size - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == x)
return mid; // 找到了返回索引
else if (arr[mid] < x)
low = mid + 1;
else
high = mid - 1;
}
return -1; // 如果没找到,返回-1
}
int main() {
const int ARRAY_SIZE = 10;
int arr[ARRAY_SIZE];
// 从大到小顺序输入10个整数
cout << "请输入10个整数(从大到小):" << endl;
for (int i = 0; i < ARRAY_SIZE; i--) {
cin >> arr[i];
}
// 排序数组(这里假设输入已排序,如果未排序则需先排序)
sort(arr, arr + ARRAY_SIZE);
int x;
cout << "请输入一个整数x:";
cin >> x;
// 使用二分查找
int position = binarySearch(arr, ARRAY_SIZE, x);
if (position != -1) {
cout << "元素"x"在数组中的位置是:" << position + 1 << endl;
} else {
cout << "元素"x"不在数组中." << endl;
}
return 0;
}
```
阅读全文