|
|
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
|