在一个排好序的升序数列中,查找与肆意几个给定的值最接近的元素。要求升序列的长度小于100000,各元素的值小于1000000000,需要查找的给定值个数小于10000,给定值的大小在1000000000之内,若是知足前提的值有两个,则输出最小的一个。
如何用C++实现这一计较呢?小编与大师分享操作经验。

工具/原料
- C++
方式/步骤
- 1
输入数据时,第1行输入升序数列的长度,第2行输入数列的各值,第3行输入需要查找的给定值个数,最后一行输入各查找的给定值。

- 2
首先,界说一个常量,节制升序数列的最年夜长度。

- 3
界说各变量和数组,类型都为整型数据,用来实现运算。

- 4
输入数列的长度,保留在变量n中。

- 5
接着,输入序列的各元素,用for轮回节制输入。

- 6
输入要查找的给定值的个数,保留在变量m中。

- 7
用for轮回节制输入各给定值,并计较出与给定值最接近的序列中的值。

- 8
给查找规模的最小值和最高值位置赋值,初始值为0和n-1。

- 9
用do-while轮回,实现给定值在序列中最接近值的查找。

- 10
用if语句节制,若是序列中有要查找的值,则输出该值。

- 11
若是最后找到值年夜于需查找的值,按照其与查找值的接近法式判定出序列中最接近的元素。

- 12
最后,若是查找到的值小于需查找的值,按照与查找值最接近的两个值,找出知足前提的元素。

- 13
运行法式,输入升序序列、需查找的值后,电脑就会运算出查找值在序列中最接近的元素。








