| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1432 人关注过本帖
标题:老师布置的作业 求高手解答
只看楼主 加入收藏
qq396812073
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-5-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:29 
老师布置的作业 求高手解答
:猜价格游戏:程序最初提示用户物品的价格在0--1000元之间(真实价格为469元),请用户猜测,如果用户猜500,则提示用户往500以下再猜,如果用户下次猜250,则提示用户往250以上再猜。。。最多允许用户猜5次,如果在规定次数内用户正确猜出了价格则告诉用户“恭喜,您答对了!宝贝归您了。”,否则告知“5次限制已到,您没机会了!”
大神们 求解啊
搜索更多相关主题的帖子: 价格 250 宝贝 用户 
2012-05-31 19:54
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
唉,你在论坛里翻关于“猜数字”的贴子看看吧。一打一打的。

我倒想另外提个问题,假设参与游戏的选手智商足够高,那他在5次之内猜到价格的概率是多少?

重剑无锋,大巧不工
2012-05-31 20:11
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
程序代码:
#include <stdio.h>

int main(void)
{
    int max = 1000, min = 0, value, middle;
    int times = 0;
    double probability;
   
    printf("Please input value first:");
    scanf("%d", &value);
    while(1)
    {
        times++;
        middle = (max - min) / 2 + min;
        if (middle > value)
            max = middle;
        else if (middle < value)
            min = middle;
        else
            break;
    }
    probability = double(5) / times > 1 ? 1 : double(5) / times;
    printf("Need guess %d times.\n", times);
    printf("the probability is %f\n", probability);

    return 0;
}
看看这个 行的同吗

梅尚程荀
马谭杨奚







                                                       
2012-05-31 22:07
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
…… 想了想 上面这个还是不够聪明 如果按部就班的猜5次 是猜不到价格的 因为那样猜469 需要10次
咋办?

梅尚程荀
马谭杨奚







                                                       
2012-05-31 22:13
miko伊藤
Rank: 1
来 自:中国
等 级:新手上路
帖 子:4
专家分:1
注 册:2012-5-30
收藏
得分:1 
我们老师也给我们出过这题目、不过具体我忘记的七七八八的了
2012-05-31 22:48
never_yzq
Rank: 4
等 级:业余侠客
帖 子:112
专家分:213
注 册:2012-5-25
收藏
得分:1 
程序代码:
#include<stdio.h>
main()
{
int time,cai,value;
scanf("%d",value);
for(time=1;time<6;time++)
{
scanf("%d",cai);
switch(cai/value)

 {
  case"<1":printf("还差一点
   点,请再往上猜!");break;
  case">1":printf("还差一点
   点,请再往下猜!");break;
  default:printf("恭喜,您答对了!宝贝归您了!");

 }
if(time=5&&cai/value!=1)

 printf("5次限制已到,您没机会了!");
}

}
我也是新手,如果有不对之处,欢迎大家指正!
2012-06-02 09:39
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
回复 4楼 有容就大
本来也不可能是百分之百猜出来。
2012-06-02 10:31
heifeng2012
Rank: 3Rank: 3
来 自:上海
等 级:论坛游侠
帖 子:53
专家分:113
注 册:2012-3-22
收藏
得分:1 
#include <stdio.h>
#include <string.h>
void game();
void game()
{
    int data;
    int count=0;
    do
    {
    printf("请猜数字(0--1000):");
    scanf("%d",&data);
    if(data>=500)
    {
       printf("请往500以下猜!!!\n\n");
       count++;
    }
    if(data<=250)
    {
       printf("请往250以上猜!!!\n\n");
      count++;
    }
    if(data==469)
    {
       printf("\t\t恭喜,您答对了!宝贝归您了...\n");
       break;  
    }
   
    printf("\t\t请谨慎,您还有%d次机会\n",6-count);
    }while(count!=6);
 if(count==6)
 {
    printf("悲剧。。。。\n");
    sleep(1000);
   
 }
}
int main()
{
game();

    sleep(508888888888888800);
    return 0;
}
2012-06-02 12:55
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:1 
还有其它什么其它方法呀?我只能想到楼上那种

一阴一阳之谓道!
2012-06-02 13:28
liuhoukai
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-3-6
收藏
得分:1 
回复 6楼 never_yzq
看一下switch的具体用法,还有scanf("",&)后面需要地址值
2012-06-02 15:28
快速回复:老师布置的作业 求高手解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021386 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved