读书人

C语言数字猜测用二分搜索法实现(求思

发布时间: 2012-05-14 15:24:34 作者: rapoo

C语言数字猜测用二分搜索法实现(求思路)
书上的题目的思路,在例子里根本找不着。。就像发散思维一样。。可本来对C就不是很了解,我发散到哪里!只有到这里来求助了。

程序最初猜50,让其询问用户猜测值是大,小还是正确。如果小,则令下一次猜测为50和100的中值,也就是75.如果75大,则下一次猜75和50的中值,等等。使用这种二分搜索策略,起码如果用户没有欺骗,该程序会获得正确答案。

[解决办法]

C/C++ code
int nData = 80;//比如猜80int a=-1;while(1){    printf("please input your number:\n");    scanf("%d", &a);    if(a==nData)    {//正确跳出        break;    }    if(a>nData)        printf("your number is big!");    else        printf("your number is small!");}
[解决办法]
int toguess;
int cmp(int val)
{
return val-toguess;
}
int guess(int beg,int end)
{
if(beg>end)
return;
int mid=(beg+end)/2;
if(!cmp(mid))
return mid;
if(cmp(mid)<0)
return guess(mid,end);
else
return guess(beg,end);
}
int main()
{
scanf("%d",&toguess);
printf("%d",guess(0,100));
return 0;
}

读书人网 >C++

热点推荐