C语言,由键盘任意输入 10 个整形数据(有序),再输入 1 个整形数据,查找此数据是否存在; 如果存在,输出其位置。
时间: 2023-06-09 19:02:38 浏览: 150
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,您的问题是关于 C 语言的。我会尽力回答。那么,这个问题的解决方式可以用二分查找或者顺序查找两种方法实现。
首先,您需要将输入的 10 个整数从键盘读入到一个 int 数组中,并且保证这 10 个整数是有序的。然后,再读入一个整数,用这个整数去查找是否存在于这个数组中。
对于二分查找,您可以按照以下步骤进行:
1. 定义一个变量 low 来表示查找的起始位置,就是数组的第一个位置,变量 high 来表示查找的结束位置,就是数组的最后一个位置。
2. 然后,将查找区间一分为二,mid 为中间位置。比较中间位置的值和要查找的值,如果中间位置的值比要查找的值大,那么查找的范围就在 low 到 mid-1 之间,反之就在 mid+1 到 high 之间。
3. 不断重复以上步骤,直到要查找的值被找到或者在数组中不存在为止。
如果是顺序查找,可以按照以下步骤进行:
1. 从数组的第一个元素开始,一次比较每个元素。
2. 如果当前元素和要查找的值相等,那么就找到了这个数,返回其位置。如果比较完所有元素都没有找到,则表示要查找的数在数组中不存在。
希望这个回答对您有所帮助。
阅读全文