c语言:编写程序,在有序的数列中查找某数,若该数在此数列中则输出它的位置?

帮我把代码打出来,能运行(●°u°●)​ 」的,这样补考就只要背代码了,现在还是只会hellowolrd,我已经在恶补了,就要补考了✪ω✪

之前写过一个程序类似的,你可以用作参考:

题目:试编写一个程序完成:有15个数按从下到大的顺序存放在一个数组中.输入一个数,要求折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,输出“不在表。

=====下面是C代码,其中数组没有设计为录入,而是固定数组=====

//输出的序列是从0开始算的,也就是输出的是所在数组的索引 

//注意数组中没有8 

#include<stdio.h>

int main()

{

int a[]={1,2,3,4,5,6,7,9,10,11,12,13,14,15,16};

int n,first=0,end=14,mid;

scanf("%d",&n);

while(first<=end)//不要写成first<end,这样有可能会在最后一次二分(即first=end时)被忽略 

{

mid=(first+end)/2;

if(a[mid]==n)

{

printf("your input number's index is %d(count from 0)",mid);

break;//忘记break会死循环 

}

else if(n>a[mid])

{

first=mid+1;

}

else

{

end=mid-1;

}

}

if(first>end)

{

printf("your number is not in the array");

}

return 0;

}

追问

嗯,感谢

温馨提示:答案为网友推荐,仅供参考
相似回答