C Primer Plus8-5

本文介绍了一种改进的智能猜测算法,通过二分搜索策略在用户反馈下快速定位目标数值,显著提高数字识别效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

#include<stdio.h>
#include<stdlib.h>

int main()
 {
     char a;
     int guess;
     int max = 100, min = 1;

     printf("Pick an intger from 1 to 100.I will try to guess ");
     printf("it.\nRespond with a y if my guess is right and with");
     printf("\na < if it is smaller and a > it is bigger.\n");
     printf("Uh...is your number %d?\n", guess = (max + min) / 2);

     while ((a = getchar()) != 'y')//获取用户相应并和y比较
      {
          if (a == '<')
           {   
               min = guess;
               printf("Well,then,is it %d?", guess = (min + max) / 2); 
           }

          else if (a == '>')
           {   
               max = guess;
               printf("Well,then,is it %d?", guess = (max + min) / 2);

           }
      }

     printf("I knew I could do it!\n");
     system("pause");
     return 0;

 }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值