按书上写的假如输入5,则输出i=4。可为什么我的这个输入任何0-9的整数,输出的都是输入的值呢?
时间:2008-07-24 09:27:38
来源:论坛整理 作者: 编辑:chinaitzhe
请大家帮忙看一下到底是哪错了,下面就是代码
#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 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面