首页 > 试题广场 >

修改程序清单8,4中的猜测程序,使其使用更智能的猜测策略。例

[问答题]

修改程序清单8,4中的猜测程序,使其使用更智能的猜测策略。例如,程序最初猜50,让其询问用户该猜测值是大、小还是正确。如果该猜测值小,则令下一次猜测值为50和100的中值,也就是75。如果75大,则下一次猜测值为75和50的中值,等等。使用这种二分搜索(binary search)策略,起码如果用户没有欺骗,该程序很快会获得正确答案。

推荐
#include <stdio.h>
int main(void)
{
 int guess, max = 100, min = 1;
 char response;
 printf("Pick an integer from 1 to 100.I will try to guess ");
 printf("it.\nRespond with a b if my quess is big and with");
 printf("\nan l if it is little.\n");
 printf("Also,Respond a y if it is right.\n");
 printf("Uh...is your number %d?\n", guess = ( max + min ) / 2 );
 while((response = getchar()) != 'y')
 {
 if (response == 'b')
 {
 max = guess - 1;
 printf("Well,then,is it %d?\n",guess = ( max + min ) / 2 );
 }
 else if (response == 'l')
 {
 min = guess + 1;
 printf("Well,then,is it %d?\n",guess = ( max + min ) / 2 );
 }
 else printf("Sorry,I understand only y or n.\n");
 while (getchar() != '\n');
 }
 printf("I know I could do it!\n");
 return 0;
}

发表于 2018-05-05 21:41:30 回复(0)