| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:菜鸟求救
只看楼主 加入收藏
Tchong
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2008-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:7 
菜鸟求救
请问下面的题目怎样编?

 

2.如下的程序片段将产生一个随机数(0到99的整数,包含0和99)放在randInt中,
(1)试完成该程序,使得:

  该程序运行时,产生一个随机数,并提示用户输入一个数猜测该数是多少,如果猜错,告诉用户随机数比所猜的数大还是小,并要求重新猜,直到猜出为止。猜出后输出随机数。

(2)分析一下,怎样尽快找到随机数,以及最坏情况要找多少次,当然,不能作弊。

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

int main()
{
int randInt;
        /* 以下两行代码生成0-99的随机数放进randInt中 */
srand((unsigned int)time(NULL));
randInt=rand()%100;  
        
}

 
 
 
希望尽快回答
搜索更多相关主题的帖子: include 用户 
2008-10-22 19:12
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
(2)分析一下,怎样尽快找到随机数,以及最坏情况要找多少次,当然,不能作弊
最坏就一个一个找吧

采取折半。

倚天照海花无数,流水高山心自知。
2008-10-22 20:02
xiaocaimiao
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-10-6
收藏
得分:0 
这是我前几天编的,你可以看下,基本差不多!我试过了,可行!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int i;
int randInt,num,counter=0;
        /* 以下两行代码生成0-99的随机数放进randInt中 */
srand((unsigned int)time(NULL));
 randInt=rand()%100;
        
while(num!=randInt)
{printf("Please input a number:");
scanf("%d",&num);
   if(randInt<num)
   printf("The guessed number is larger,please input another number:\n");
   else
   printf("The guessed number is smaller,please input another number:\n");
   
   counter++;}

   if(randInt==num){
   
    if(counter>5){
     printf("Sorry,You have a bad lucky!\n");}
     if(counter<=5){
      printf("Congratulations!You have a good lukcy!\n");}
   
      printf("The randInt number is %d\n The counter is %d\n",num,counter);
     
   }
}
2008-10-24 21:18
甲鱼
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-10-4
收藏
得分:0 
int i;
int randInt,num,counter=0;
        /* 以下两行代码生成0-99的随机数放进randInt中 */
//srand((unsigned int)time(NULL));我将你的这行给直接不用了,结果也可运行,不知道对不对,请问楼上这行是拿来干什么的
randInt=rand()%100;
        
while(num!=randInt)
{printf("Please input a number:");
scanf("%d",&num);
   if(randInt<num)
   printf("The guessed number is larger,please input another number:\n");
   else if(randInt>num)
   printf("The guessed number is smaller,please input another number:\n");
   
   counter++;}
2008-10-25 00:05
xiaocaimiao
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-10-6
收藏
得分:0 
回答楼上的,这行srand((unsigned int)time(NULL)) 是用当前时间来播种产生随机数的。srand()产生随机种子不是传递给rand函数,而是传递给操作系统的,然后rand函数调用操作系统内部的伪随机数生成随机数。
不知道我这样解释合适吗?
2008-10-26 17:09
Tchong
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2008-10-17
收藏
得分:0 
thank you very much
thank you very much
2008-10-26 22:18
R如果
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-26
收藏
得分:0 
二分法应该是最快的了吧
2008-10-27 13:07
ztj20080808
Rank: 1
等 级:新手上路
威 望:1
帖 子:36
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 3# xiaocaimiao 的帖子
不错
长见识了
2008-10-27 15:42
快速回复:菜鸟求救
数据加载中...
 
   



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

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