即使其他变量的输出与程序结束时的概率变量位于同一放置区域,变量“概率”总是为零。我感觉它与放置有关,但这可能是另一个初始化问题。概率永远不应该为零。
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
int main() {
int die1,
die2,
sum,
turns,
win=0,
loss=0;
double probability=0;
int thepoint, rolls;
srand(time(0));
cout<<"How many turns would you like? ";
cin>>turns;
for(int i=0; i<turns; i++)
{
sum=0;
die1=rand()%6;
die2=rand()%6;
sum=die1+die2;
//cout<<"\nFirst die is a "<<die1<<endl;
//cout<<"Second die is a "<<die2<<endl;
//cout<<"\n\n>>>Turn "<<i<<": You rolled "<<sum;
switch (sum){
case 2: case 3: case 12:
//cout<<"You have lost this turn with 2 3 or 12!"<<endl;
loss++;
break;
case 7:
//cout<<"\nYea! You won this turn with a 7 on the first roll!"<<endl;
win++;
break;
case 11:
//cout<<"You won this turn ith 11!"<<endl;
win++;
break;
default:
//cout<<"\nRolling again!"<<endl;
thepoint=sum;
rolls=1;
sum=0;
//cout<<"\nRoll 1 - Your point is "<<thepoint<<endl;
while (sum != thepoint)
{
//srand(time(0));
die1=rand()%6;
die2=rand()%6;
sum=die1+die2;
rolls++;
//cout<<"Roll "<<rolls<<". You rolled "<<sum<<endl;
if (sum == thepoint)
{
//cout<<"You won this turn in the while with a point match!"<<endl;
win++;
break;
}
if (sum == 7)
{
loss++;
//cout<<"You lost this turn in the while with a 7"<<endl;
break;
}
}
}
}
probability = win/turns;
cout<<"No. of Turns: "<<turns<<"\n";
cout<<"No. of Wins: "<<win<<"\n";
cout<<"No. of Loses: "<<loss;
cout.precision(6);
cout<<"\nExperimental probability of winning: "<<fixed<<probability;
cin.get();
cin.get();
return 0;
}