VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 1084|回复: 6

【活动】猜数字游戏(续),让电脑猜用户输入的数字!

[复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-3-14 13:57:55 | 显示全部楼层 |阅读模式
之前给大家发过一篇练习的帖子:
【活动】猜数字游戏,小白挑战下?
http://www.cctry.com/thread-289400-1-1.html
有不少网友发布了答案,很多人也都觉得挺简单。但是后来看到了一位叫 @C语言小神 的网友的回复:
“嘿嘿和你倒过来的,与其我猜电脑,干嘛不让电脑猜我?”
对啊,为什么不让电脑猜我们提供的数字呢?所以,这里面延续之前的问题,深入下!

题目:实现一个电脑猜数字的小游戏,用户先随机的输入一个1~100之间的数字。之后,让电脑多次的在1~100之间随机生成一个数字,与用户输入的数字做对比:
如果随机的数字比用户输入的数字大,则提示:xx 太大了,马上随机一个小一点的数;
如果随机的数字比用户输入的数字小,则提示:xx 太小了,马上随机一个大一点的数;
如果随机的数字跟用户输入的数字相等,则提示:恭喜电脑终于猜对了,答案就是 xx;
大家明白了吗?

要求:根据随机生成数的大小,重新定义随机的范围,这样效率要高一些,不然每次都在1~100的范围内随机,次数会很多!
例如:用户输入的数字是82,电脑第一次随机的数是45,肯定提示太小了,让电脑重新随机,这时候我们就重新定义随机的范围从45~100。电脑第二次随机的数是90,肯定提示太大了,这时候我们就重新定义随机的范围从45~90。以此类推,最终就可以把范围限制到最小,之后随机到我们要的值。大家明白了吗?


程序的示例截图如下:
【活动】猜数字游戏(续),让电脑猜用户输入的数字!

代码答案回复后可见,大家先自己动手做做试试,实在不行再看答案!

游客,如果您要查看本帖隐藏内容请回复




上一篇:【活动】猜数字游戏,小白挑战下?
下一篇:新人报到

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

62_avatar_middle
在线会员 C语言小神 发表于 2018-3-14 14:29:30 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. #define N 100
  5. int main()
  6. {
  7.         int x;
  8.         int a[N]={0};
  9.         int i;
  10.         printf("输入要我猜的数(1-100):");
  11.         scanf("%d", &x);
  12.         for(i=0; i<N; i++)
  13.         {
  14.                 a[i]=i+1;
  15.         }       
  16. //        printf("a[N-1]=%d\n",a[N-1]); //检查最后一个数

  17.         srand(time(NULL));
  18.         for(i=0;i<N&& a[0]<=a[N-1];i++)
  19.         {
  20.                 //middle由随机产生
  21.                 int middle=rand()%(a[N-1]-a[0]+1)+a[0];
  22.                 printf("猜是%d",middle);
  23.                 if(x<middle)
  24.                 {
  25.                         a[N-1]=middle-1;
  26.                         printf("\t大了 那我在[%d, %d]里猜\n", a[0], a[N-1]);
  27.                 }
  28.                 else if(x>middle)
  29.                 {
  30.                         a[0]=middle+1;
  31.                         printf("\t小了 那我在[%d, %d]里猜\n", a[0], a[N-1]);
  32.                 }
  33.                 else
  34.                 {
  35.                         printf("\t哈哈,发现了你的数是 %d\n",middle);
  36.                         break;
  37.                 }
  38.         }//找清楚边界

  39.         return 0;
  40. }
复制代码

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

62_avatar_middle
online_vip08 longquan 发表于 2018-3-14 14:34:02 | 显示全部楼层
【活动】猜数字游戏(续),让电脑猜用户输入的数字!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

87_avatar_middle
online_vip shenchunlong 发表于 2018-3-14 15:39:26 | 显示全部楼层
看看什么东东

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

59_avatar_middle
在线会员 fangting1989 发表于 2018-3-17 13:33:12 | 显示全部楼层
我就是来打酱油的 嘻嘻

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

66_avatar_middle
在线会员 ly1599285982 发表于 2018-4-2 21:59:25 | 显示全部楼层
代码答案回复后可见,大家先自己动手做做试试,实在不行再看答案!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

31_avatar_middle
在线会员 Eirik 发表于 2018-4-22 17:26:47 | 显示全部楼层
【活动】猜数字游戏(续),让电脑猜用户输入的数字!【活动】猜数字游戏(续),让电脑猜用户输入的数字!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-21 21:32

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表