鱼C论坛

 找回密码
 立即注册
查看: 3562|回复: 1

在线求解答 在线等

[复制链接]
发表于 2012-8-25 20:40:06 | 显示全部楼层 |阅读模式
1鱼币
#include "iostream.h"
#include "cstdlib"
int rolldice(void);
int main()
{
int gamestatus,sum,mypoint;
unsigned seed;
cout<<"please input an usingned integer"<<endl;
cin>>seed;
srand(seed);
sum=rolldice();
switch(sum)
{
case 7:
case 11:
  gamestatus=1;
  break;
case 2:
case 3:
case 12:
  gamestatus=2;
  break;
default:
  gamestatus=0;
  mypoint=sum;
  cout<<"point is"<<mypoint<<endl;
  break;
}
while(gamestatus==0)
{
  sum=rolldice();
  if(sum==mypoint)
  {
   gamestatus=1;
  }
  else if(sum==7)
  {
   gamestatus=2;
  }
  if(gamestatus==1)
  {
   cout<<"you win"<<endl;
  }
  else
  {
   cout<<"you lost"<<endl;
  }
}
}
int rolldice(void)
{
int die1,die2,worksum;
    die1=1+rand()%6;
die2=1+rand()%6;
worksum=die1+die2;
cout<<"play rolled"<<die1<<"+"<<die2<<"="<<worksum<<endl;
return worksum;
}
这代码中 我 不明白他的算法
die1=1+rand()%6;
die2=1+rand()%6;
我输入12  die1=6,die2=1;不明白?能否给解释下

最佳答案

查看完整内容

rand();是随机数函数,rand()%6;是得到0-5之间的随机数,rand()%6;就是1-6之间的随机数,而你输入的数是随机数种子,有了这个种子才能得到“随机”的随机数,但相同的种子会得到相同的随机数序列,所以每次输入同样的数字,结果是一样的,这个程序并没有什么算法,只是通过特定的种子得到特定的随机数,可以参考http://www.cnblogs.com/zihuatanejo/articles/1378573.html
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-25 20:40:07 | 显示全部楼层
rand();是随机数函数,rand()%6;是得到0-5之间的随机数,rand()%6;就是1-6之间的随机数,而你输入的数是随机数种子,有了这个种子才能得到“随机”的随机数,但相同的种子会得到相同的随机数序列,所以每次输入同样的数字,结果是一样的,这个程序并没有什么算法,只是通过特定的种子得到特定的随机数,可以参考http://www.cnblogs.com/zihuatanejo/articles/1378573.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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