作者: jasongo () 看板: C
標題: 為什麼我電贏的機率算不出來??
時間: Sun Apr 4 09:14:40 2004
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define CONTINUE 0
#define WIN 1
#define LOST 2
int rollDice(void)
{
int die1, die2, dieSum;
die1 = (rand() % 6) + 1;
die2 = (rand() % 6) + 1;
dieSum = die1 + die2;
printf("擲2骰子 %d + %d = %d 點\n", die1,die2,dieSum);
return dieSum;
}
int r(void)
{
int status, dieSum, myPoint;
srand(time(NULL));
dieSum = rollDice();
switch(dieSum)
{
case 7: case 11:
status = WIN;
break;
case 2: case 3: case 12:
status = LOST;
break;
default:
status = CONTINUE;
myPoint = dieSum;
printf("我的點數是 %d 點\n", myPoint);
break;
}
while (status == CONTINUE)
{
dieSum = rollDice();
if (dieSum == myPoint)
status = WIN;
else if (dieSum == 7)
status = LOST;
}
if (status == WIN)
printf("我贏了!!\n");
else
printf("我輸了!!\n");
return status;
}
int main()
{
int a1=0,a2,w=0,l=0,n=0;
float p;
printf("請輸入你要玩幾次:");
scanf("%d",&a2);
n=a2;
while (a2>0)
{
a1=r();
switch(a1)
{
case WIN:
w++;
break;
case LOST:
l++;
break;
}
a2--;
}
p=l/n;
printf("你共玩了%d次,電腦贏了%d次,你贏了%d次\n",n,l,w);
printf("電腦贏的機率是%f\n",p);
return 0;
}
電腦贏的機率只能算出1和0,就是跑不出小數點…
通常我都讓他玩1000次以上…
--
[0m [1;33m※ Origin: [36mYahoo!奇摩 大摩域 [37m<telnet://bbs.kimo.com.tw> [m
[1;35m◆ From: [1;32mip67044.ntctc.edu.tw [m
--
歡迎參觀 雲科 [1;36m藍天使 [32m(bbs.yuntech.edu.tw) [m
Java、Language 版的精華區
若您有對該精華區有任何的意見請回到 u901...@yuntech.edu.tw
Ping Lun Liao
--
[m※ Origin: 雲林科技大學藍天使 <bbs.yuntech.edu.tw> [From: 218.163.213.39]