samedi 7 octobre 2017

single dice roll simulation with C++

I am writing a program to simulate a dice roll with random function. This is my code, but I am having infinite loop. The program is supposed to ask the user how many times they would like to roll the dice. Then I used a for loop to roll the dice from 1 to 6 and I put all that in a do-while in order to only allow the user to select between 1 and 6 , if the selection is outside of 1 to 6 it is supposed to say it is an invalid selection. I am not allowed to use functions or arrays on this

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

int main()
{
    //i is the counter for the loop
    int i = 0; 
    //store total count for landing number
    int num1 =0;
    int num2 =0;
    int num3 =0;
    int num4 =0;
    int num5 =0;
    int num6 =0;

    int Num1 =0;
    int Num2 =0;
    int Num3 =0;
    int Num4 =0;
    int Num5 =0;
    int Num6 =0;
    int randNum;
    int times;


    //User selection
    int selection;


    /* initialize random seed: */
   srand ((unsigned int)time(NULL));

   /* generate random number: */
   randNum = rand() % 6 + 1;

    cout<<"How many times would you like to roll the dice? " << endl;
    cin >> selection;

   do{
        for(i = 1; i <= selection; i++)
        {

            if(randNum==1)
            {
                num1++;
            }
            else if(randNum==2)
            {
                num2++;
            }
            else if(randNum==3)
            {
                num3++;
            }
            else if(randNum==4)
            {
                num4++;
            }
            else if(randNum==5)
            {
                num5++;
            }
            else if(randNum==6)
            {
                num6++;
            }
        }
    Num1 = num1/times *100;
    Num2 = num2/times *100;
    Num3 = num3/times *100;
    Num4 = num4/times *100;
    Num5 = num5/times *100;
    Num6 = num6/times *100;


    cout <<"# Rolled \t # Times \t % Times" << endl;
    cout <<"----- \t ------- \t -------" << endl;
    cout <<" 1 \t " << num1 << "\t " << fixed << setprecision(2) << Num1 << "%\n";
    cout <<" 2 \t " << num2 << "\t " << fixed << setprecision(2) << Num2 << "%\n";
    cout <<" 3 \t " << num3 << "\t " << fixed << setprecision(2) << Num3 << "%\n";
    cout <<" 4 \t " << num4 << "\t " << fixed << setprecision(2) << Num4 << "%\n";
    cout <<" 5 \t " << num5 << "\t " << fixed << setprecision(2) << Num5 << "%\n";
    cout <<" 6 \t " << num6 << "\t " << fixed << setprecision(2) << Num6 << "%\n";
    }

   while(i >= 1 || i <= 6);
   {
       cout << "This is an invalid number. \n"
        << "The number of rolls should be equal to or greater than 1.\n"
        << "Please enter again.\n";
   }
}




Aucun commentaire:

Enregistrer un commentaire