【发布时间】:2013-12-13 08:25:45
【问题描述】:
我一直在为我的计算机科学课做练习题,其中一个题目如下:
重复掷一对骰子。如果“厢式车”(6-6)出现,玩家 A 获胜。如果不是,但 7 连续出现两次(例如,一个骰子显示 7,然后在你再次掷出两个骰子后,另一个 7 出现),B 获胜。编写一个 C++ 程序,掷一对骰子 1000 次,并输出 A 和 B 会赢多少次。
所以我已经获得了该程序的主要骨干并对其进行了几次测试,但到目前为止,B 玩家每次都显示为 0 次获胜。每次我运行程序时,A 玩家的胜利都会波动,所以我相信 A 的编码是正确的,但任何提示或调试都将不胜感激。程序:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int die1, die2, store = 0, awin = 0, bwin = 0;
srand(time(NULL));
for(int i = 0; i < 1000; i++)
{
die1 = rand()% 6+1;
die2 = rand()% 6+1;
if(die1 == 6 && die2 == 6)
{
awin++;
}
else if(die1 == 7 || die2 == 7)
{
store = 1;
}
if(store == 1 && die1 == 7)
{
bwin++;
store = 0;
}
else if(store == 1 && die2 == 7)
{
bwin++;
store = 0;
}
store = 0;
}
cout << "A has won " << awin << " times and B has won " << bwin << " times." << endl;
system("pause");
}
【问题讨论】:
-
else if(die1 == 7)6 面骰子怎么可能是 7 面? -
骰子有几面?
-
我刚刚注意到骰子实际上不可能等于 7,所以我在这里勉强说他相信 sum i> 等于七,不是一个死的。我觉得自己像个彻头彻尾的白痴,但我今天也刚参加了有机化学测试,所以我有点花...对不起,哈哈。
-
我可以给小费吗?这与问题无关,因为它已经得到了回答,但是不要在
if、else if甚至函数声明之后在新行上开始大括号,而是将其立即放在右方括号之后。即int main(){作为您的第 5 行。它只是有助于节省空间并提高可读性。 -
@TheWalkingCactus:你知道,程序员会为这样的编码约定争论不休。比如我鄙视同一行的花括号,我会争论到死!
标签: c++ visual-studio-2012 dice