我几乎用骰子滚动程序完成了,我唯一的问题是,由于我所指定的阵列的大小,我无法输入超过5000卷。虽然我想我可以简单地将阵列的大小增加到一些荒谬的数字,但我宁愿不使用基于输入 remaining Rolls.
的动态大小的阵列。 有没有人可以帮忙?
注:这是经编辑的和最后的编码,有效。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int roller(){ // loop to simulate dice roll
int die1, die2;
int total;
die1 = rand()%6+1;
die2 = rand()%6+1;
total=die1+die2;
return total;
}
int main(){
int numberOfRolls;
int remainingRolls;
int eights=0; // declare counter array to hold frequencies of dice results
int i;
int value;
float percentage;
int currentRoll; // declare array for dice values
currentRoll= 0;
cout << "How many times will the dice be rolled?" << endl;
cin >> remainingRolls;// user input # of dice rolls
numberOfRolls = remainingRolls;// variable to hold number of rolls (for output)
for (i=0; remainingRolls >0; remainingRolls--){// loop to count frequency of each value
currentRoll = roller();// activate diceRoll function
if (currentRoll == 8){
eights++;
}
}
percentage = (eights*100/numberOfRolls);
cout << "The dice were rolled " << numberOfRolls << " times." << endl;
cout << "The value 8 came up " << eights << " times or " << percentage << "% of the time." << endl;
getch();
return 0;
}