2016-02-12 72 views
1

因此,对于我的班级任务,我被告知要做一个硬币折腾程序,但采用与我在网上找到的不同的方式。 我们实验室的目标是创建一个投币游戏程序,它将运行4个不同的时间,如果它获得4个头或4个尾巴,它将“成功”。如果失败(即2个尾巴2个头),那么它将继续尝试,直到获得4个头部或4个尾部。 到目前为止,我有C++硬币折腾混乱

#include <iostream> 
#include <cstdlib> 
using namespace std; 

enum coinFace { head , tail }; 

void coinToss() 
{ 
    for (int flips = 1; flips <= 4; flips++) 
    { 
     int result = rand() % 3; 
     if (result == 1) 
      cout << "Heads" << endl; 
     else 
      cout << "Tails" << endl; 
    } 
} 

int main() 
{ 
    unsigned seed; 
    int trials; 
    cout << "Please enter the seed." << endl; 
    cin >> seed; 
    cout << "How many trials would you like?" << endl; 
    cin >> trials; 
    srand(seed); 
    coinToss(); 

    return 0; 
} 

我很迷茫在这一点上。我不明白如何使用枚举功能,我真的不知道如何......从这里继续。 http://imgur.com/Rt3Lf9l这是分配的职位。我希望能够学习,而不是简单地接受答案!但我不知道如何从这里继续下去,所以我很可能需要很多帮助。先谢谢你。

+0

'int result = rand()%3;'会产生三个数字:0,1和2. if(result == 1)'head。如果结果== 0或2,尾巴。这对我来说似乎不公平。 – user4581301

+0

建议:而不是'for(int flips = 1; flips <= 4; flips ++)',简化和去'for(int flips = 0; flips <4; flipips ++) – user4581301

回答

0

因为您只需要存储头部/尾部的状态,所以可以使用枚举或以前的任何东西。你需要添加的内容如下:1)计算头部/尾部的时间。 2)裁判失败/成功。