c语言rand函数抛骰子 c语言计算骰子概率

c语言,骰子程序

#include stdio.h

普陀网站建设公司成都创新互联,普陀网站设计制作,有大型网站制作公司丰富经验。已为普陀上千提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的普陀做网站的公司定做!

#include time.h

#include stdlib.h

int rollDie(void)

{

return rand()%6+1;

}

void drawDic(int* pdic,int n)

{

int i,sum=0;

for(i=0;in;i++)

{

pdic[i]=rollDie();

}

for(i=0;in;i++)

{

printf("----");

}

printf("\n");

for(i=0;in;i++)

{

printf("|%d| ",pdic[i]);

sum+=pdic[i];

}

printf("\n");

for(i=0;in;i++)

{

printf("----");

}

printf("\nsum=%d\n",sum);

}

int main()

{

int dic[100];

int n=1;

int i;

printf("输入骰子数目:");

scanf("%d",n);

srand(time(0));

drawDic(dic,n);

return 0;

}

结果:

请C语言的高手帮帮忙,不知如何去随机模拟骰子的6000次投掷,不知道rand函数怎么用

补充下楼上的

srand(time(NULL));

for(i=0;i6000;++i)

{

j=rand()%6+1;// 这个为1-6

++frequency[j-1];//统计频率,对应frequency[0]-frequency[5]

}

掷骰子的 C语言

#include time.h

#include stdio.h

#include string.h

#define MIDDLE_FLAG 1

#define INITIAL_SCORE 1000

int bet()

{

int rollresult;

rollresult = rand()%6 + 1; //此处rand()为随机数,对6取余结果为0~5,需要+1修正为1~6

//printf("结果:%-4d",rollresult);

if (rollresult MIDDLE_FLAG)

return 1;

else

return 0;

}

int main()

{

int betscore,myscore = INITIAL_SCORE;

int resultflag, betflag, betresult;

char cinput[2], sresult[3];

printf("您的初始分数为%d\n",myscore);

srand((int)time(0)); //用时间创建随机数种子

while(1)

{

while(1)

{

puts("请压分:");

scanf("%d",betscore);

if(betscore myscore)

printf("您的剩余分数不够,为%d", myscore);

else

break;

}

fflush(stdin); //强制刷新缓冲区,防止上次输出影响

puts("请选择大小G为大L为小,X为退出:");

gets(cinput);

cinput[0] = cinput[0]%32+'A' - 1;

if(cinput[0] == 'X')

break;

else

betflag = (cinput[0] == 'G')?1:0;

//三目运算符“?”用法:x=(ab)?a:b;相当于if(ab)x=a;else x=b;

betresult = bet();

myscore = (betresult == betflag)?(myscore+2*betscore):(myscore-betscore);

strcpy(sresult, ((betresult!=0)?"大":"小"));

printf("结果为%s,您当前的分数为%d\n",sresult, myscore);

}

return 0;

}

c语言 1.rand()模拟抛1000000次骰子 2.输入任意一个正整数,如:123456,输出其反序整数,即:654321加分

1定义一个数组

int a[6]={0};

int i;

for(i=0;i1000000;i++)

a[rand()%6]++;

接着打印样式就自己写好了,我给你个差不多

for(i=0;i6;i++)

printf("%f",a[i]*1.0/1000000);

2

其实用一个while搞定

int n=123456,sum=0;

while(n)

{

sum=sum*10+n%10;

n/=10;

}

printf("%d',sum);

rand()%6+1是什么意思?

rand()%6+1是rand()函数,是Excel中产生随机数的一个随机函数,rand()%6+1的意思是编写C程序模拟的一个掷骰子游戏。

rand()%6+1具体分析为:由于每个人掷骰子所得到的点数都是随机的,因此你需要借助随机数发生器,每次产生一个1 到 6之间的整数,由此模拟玩家掷骰子的点数。

需要得到6个不同的随机数值,我们需要调用rand()函数,并取rand()函数除以6的余数就可以,就是rand()%6。但是这样得到的数是在0〜5之间的6个随机数,再将它加1,就是rand()%6+1,就可以得到1〜6之间的一个随机数。

为了计算在每盘中,甲、乙两人所掷的点数,需要定义两个int型变量d1、d2,用于记录每个人投掷点数的累加器。为了记录每个人的获胜盘数,需要再定义两个int型变量c1、c2,用于记录每个人获胜的盘数。

扩展资料:

rand()%6+1的完整的代码:

#include stdio.h

#include stdlib.h

#include time.h

int main()

{

int d1, d2, c1, c2, i, j;

c1 = c2 = 0;  /*初始化*/

srand((unsigned)time(NULL));

rand();  /*初始化随机数产生器*/

for(i=1; i=100; i++)

{  /*模拟游戏过程*/

d1 = d2 = 0;

for(j=1; j=6; j++)

{  /*两个人轮流掷骰子*/

d1 = d1+rand()+1;

d2 = d2+rand()+1;

}

if(d1d2)

c1++;  /*累加获胜盘数*/

else if(d1d2)

c2++;

}

if(c1c2)  /*输出最终获胜者信息*/

printf("\nThe first win.\n");

else

if (c1c2)

printf("\nThe second win.\n");

else

printf("They tie.\n");

return 0;

}

运行结果:

The second win.

参考资料来源:

百度百科-rand()

求C语言编程题源代码,掷骰子游戏

这是C语言的题?

C语言不支持bool类型。。

我用C++编译器编译的

以下是代码

#include stdio.h

#include stdlib.h

#include time.h

int roll_dice(void);

bool play_game(void);

int main(){

char c = 'y';

int wintimes = 0,losetimes = 0;

while(c == 'y'){

if(play_game())

wintimes++;

else

losetimes++;

printf("\nPlay again? ");

scanf(" %c",c);

// printf("%c\n",c);

if(c=='Y') c='y';

}

printf("Wins: %d\tLosses: %d\n",wintimes,losetimes);

return 0;

}

int roll_dice(){

int ret=rand()%6+1;

ret+=rand()%6+1;

return ret;

}

bool play_game(){

int curRoundNumber = roll_dice();

int winNumber;

printf("You rolled: %d\n",curRoundNumber);

if(curRoundNumber == 7 || curRoundNumber == 11){

printf("You win!\n");

return true;

}

if(curRoundNumber == 2 || curRoundNumber == 3 || curRoundNumber == 12){

printf("You lose!\n");

return false;

}

winNumber = curRoundNumber;

printf("Your point is %d\n",winNumber);

while(1){

curRoundNumber = roll_dice();

printf("You rolled: %d\n",curRoundNumber);

if(curRoundNumber == winNumber){

printf("You win!\n");

return true;

}

if(curRoundNumber == 7){

printf("You lose!\n");

return false;

}

}

}


分享文章:c语言rand函数抛骰子 c语言计算骰子概率
当前URL:http://scyanting.com/article/doscgop.html