给定一个排序整数数组,并在c中找到与给定数字最接近的值。数组可能包含重复的值
例如,我们在一个数组中有给定一个排序整数数组,并在c中找到与给定数字最接近的值。数组可能包含重复的值,c,arrays,C,Arrays,例如,我们在一个数组中有5个值(a,b,c,e,d),这些值可能包含重复的值。a,b,c,d,e的值由另一个函数计算,并被分配一些值。 让用户输入值为x。 我们需要在数组中找到与x最近的值,并且输出必须在a、b、c、e、d中。如果最接近的数字是其中一个副本,则必须考虑字母顺序 例如: Array: a,b,c,e,d a=6、b=5、c=3、d=9、e=9是函数分配给它们的值 for x : 5, output : b for x :11, output : d for x : 4, ou
5
个值(a,b,c,e,d
),这些值可能包含重复的值。a,b,c,d,e
的值由另一个函数计算,并被分配一些值。
让用户输入值为x
。
我们需要在数组中找到与x
最近的值,并且输出必须在a、b、c、e、d
中。如果最接近的数字是其中一个副本,则必须考虑字母顺序
例如:
Array: a,b,c,e,d
a=6、b=5、c=3、d=9、e=9
是函数分配给它们的值
for x : 5,
output : b
for x :11,
output : d
for x : 4,
output :c
尝试并实现以下算法:
- 获取数组中间的元素李>
- 如果此元素的值为
,则数组包含它,您知道要打印什么李>x
- 如果元素较大,则查看数组的前半部分李>
- 否则,查看数组的后半部分李>
一旦搜索的数组部分的大小为
0
,您就找到了插入x
以保持顺序的位置。最接近的值是左侧的值或右侧的值(如果有)。计算差异以确定要打印的内容。写出来!花些时间在纸上写一个算法(例如,要“手工”解决这个问题,需要做哪些可重复的步骤),然后将其转换为代码。它成功了。。谢谢你,干得好!:)