首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

书上有一个程序有一个部分没看懂,来请问

2013-08-26 
书上有一个程序有一个部分没看懂,来请教!《C primer plus》第五版第17章515页,一个模仿顾客排队的程序,有一

书上有一个程序有一个部分没看懂,来请教!
《C primer plus》第五版第17章515页,一个模仿顾客排队的程序,有一部分我没有看懂,但是整个程序写下来好麻烦,如果有人手边有这本书,并且能够看到,就帮我解决一下,如果没有不能解决,也不怪大家。就是下边这一段程序:

double min_per_cust;//顾客到来的平均间隔时间

//x是顾客到来的平均间隔时间
//如果一分钟内有顾客到来,就返回true.
bool newcustomer(double x)
{
   if(rand() * x/RAND_MAX <1)
    {
       return ture;
     }
    else
    {
       return false;
    }
}

我的问题是为什么这个程序rand() * x/RAND_MAX <1就是表明一分钟内有顾客到来?
[解决办法]


 if(rand() * x/RAND_MAX <1)


换成

 if(x *(rand()/RAND_MAX) <1)//也就是随机 取 0 -x 之间的数了
//取随机数然后加上除以最大数,乘以平均每分钟来的人数!
 


不过不应该是 小于1 返回 false 表示没人来么?其他返回true有人来

难道是我想错了?
[解决办法]
引用:

 if(rand() * x/RAND_MAX <1)


换成

 if(x *(rand()/RAND_MAX) <1)//也就是随机 取 0 -x 之间的数了
//取随机数然后加上除以最大数,乘以平均每分钟来的人数!
 


不过不应该是 小于1 返回 false 表示没人来么?其他返回true有人来

难道是我想错了?


没有问题,rand() * x/RAND_MAX是下一个顾客到来的时间,小于1就是1分钟内有顾客来嘛

热点排行
Bad Request.