c语言,骰子程序

Python016

c语言,骰子程序,第1张

 #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=0i<ni++)

 {

  pdic[i]=rollDie()

 }

 for(i=0i<ni++)

 {

  printf("----")

 }

 printf("\n")

 for(i=0i<ni++)

 {

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

  sum+=pdic[i]

 }

 printf("\n")

 for(i=0i<ni++)

 {

  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

}

结果:

这个我不是在baiduHi里面给你粘贴过一次了么?

关于你这里的rand的问题,解释如下:

int

rand()函数,随机产生一整数

  rand()%MAX

产生[0,MAX)的整数

 

a+rand()%(b-a+1)

产生[a,b]之间的整数

下面是代码:

/*

每个骰子有六面,这些面包含1,2,3,4,5,6个点,每次掷两枚骰子,然后计算点数之和。

如果第一次的和味7或11,则游戏者获胜。

2,3或12,则输。

4,5,6,8,9,10

则继续,

并将这个和作为游戏者获胜所需要的点数,直到赚到该点数是算游戏者胜。如果7次仍未,则输

*/

#include

<iostream>

#include

<cstdlib>

#include

<ctime>

#include

<cassert>

#include

"Random.H"

using

namespace

std

#define

MIN

1

#define

SIDE

6

#define

WIN

21

int

dice::getP(void)

{

srand(time(NULL))

int

p1

=

MIN+rand()%SIDE

int

p2

=

MIN+rand()%SIDE

cout

<<

"\n

p1

=

"

<<

p1

<<

",

p2="

<<

p2

<<

endl

return

(p1+p2)

}

int

rule::judge(int

p)

{

assert(

(p>=2)

&&

(p<=12)

)

int

ret

if(

p==7

||

p

==

11)

{

ret

=

1

//

win

when

first

time

}

else

if

(p==2||p==3||p==4)

{

ret

=

-1

//

lost

when

first

time

}

else

{

ret

=

0

}

return

ret

}

int

boy::play(void)

{

rule

r

dice

d

int

ret

while(

(++time)<=7

)

{

int

p1

=

d.getP()

int

ret1

=

r.judge(p1)

if(time

==

1)

{

if(

(ret1==1)

)

{

cout

<<

"

Congratulations,

You

Win!"

<<

endl

return

1

}

else

if

((ret1

==

-1))

{

cout

<<

"My

God,

You

Lost"

<<

endl

return

-1

}

}

total_

+=

p1

if(total==WIN)

{

cout

<<

"

Congratulations,

You

Win!"

<<

endl

return

1

}

}

return

-1

}