首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C语言数字猜测用二分搜索法实现(求思路)解决方法

2012-05-14 
C语言数字猜测用二分搜索法实现(求思路)书上的题目的思路,在例子里根本找不着。。就像发散思维一样。。可本来

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;
}

热点排行