按书上写的假如输入5,则输出i=4。可为什么我的这个输入任何0-9的整数,输出的都是输入的值呢?

时间:2008-07-24 09:27:38   来源:论坛整理  作者:  编辑:chinaitzhe
按书上写的假如输入5,则输出i=4。可为什么我的这个输入任何0-9的整数,输出的都是输入的值呢?
请大家帮忙看一下到底是哪错了,下面就是代码
#include <stdio.h>
#include <stdlib.h>
int Bsearch(int x,int v[],int n);
int main(void)
{
int i,iA[10]={0,1,2,3,4,5,6,7,8,9};
puts("please input x:");
scanf("%d",&i);
i=Bsearch(i,iA,10);
printf("i=%d.\n",i);
system("pause");
return 0;
}
int Bsearch(int x,int v[],int n)
{
int low,high,mid;
low=0;
high=n-1;
while(low <=high)
{
mid=(low high)/2;
if(x <v[mid])
{
high=mid-1;
}
else if(x>v[mid])
{
low=mid 1;
}
else
{
return mid;
}
}
return -1;
}



网友回复:
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





scanf("%d",&i); //i===5,兄弟!!




网友回复:这个程序就是找寻输入的数字是否在数组中,一种通过中间数找寻的算法。

你输入数组中的数当然得到的是本身了,你要是输个11,得到的不就是-1了嘛!
网友回复:a[i]=i;
网友回复:a[i] = i
当然你输入0--9,输出的i也是0--9了
网友回复:程序根本没问题.....
你的数组是以0开头的,当然下标跟内容是一样的.....即输出和输入是一样的...
关键字:书上,输入,输出,输入,整数,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面