| | |
Coin Toss Simulation, getting all Tails and one Heads
Please support our C++ advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Jan 2007
Posts: 21
Reputation:
Solved Threads: 0
Hey, it looks like I'm stuck yet again. I've been working on this for awhile and I can't figure out why it's not working properly. Here's what I'm supposed to do:
Create a function that simulates coin tossing. The function should have no input and no return value. When the function is called, it first asks the number of times they want to flip the coin, say 20, then the function will call random number function rand() 20 times. Each time rand() will randomly generate two numbers between 0 and 1 and they represent the heads and tails respectively. If it's heads print H if it's tails print T.
The problem that I'm having is that when I run the program it always gives me all Tails and one head. So if you have any ideas as to why it's doing that I'd appreciate the help. Thanks again for all the help.
Create a function that simulates coin tossing. The function should have no input and no return value. When the function is called, it first asks the number of times they want to flip the coin, say 20, then the function will call random number function rand() 20 times. Each time rand() will randomly generate two numbers between 0 and 1 and they represent the heads and tails respectively. If it's heads print H if it's tails print T.
#include<iostream> #include<string> using namespace std; void displayMenu(void); void coinToss(int flips); int main() { int choice; int flips; string dummy; do{ cout<<"What would you like to do?\n"; displayMenu(); cin >> choice; switch(choice) { case 1: cout <<"How many times would you like to flip the coin?"<< endl; cin >> flips; coinToss( flips ); getline( cin, dummy ); getline( cin, dummy ); break; } } while( choice == 3 ); cout <<"The program has terminated. Good Bye"<< endl; return 0; } void displayMenu( void ) { cout << "==========================\n"; cout << "1. Flip a coin\n"; cout << "2. Multiplication\n"; cout << "3. Quit\n"; cout << "==========================\n"; } void coinToss( int flips ) { int counter = 0, head = 0, tail = 0, toss; while( flips != 0 ) { toss--; counter++; toss = rand() % 1; if( toss == 1 ) { head++; cout << "H" << endl; } else { tail++; cout << "T" << endl; } } }
The problem that I'm having is that when I run the program it always gives me all Tails and one head. So if you have any ideas as to why it's doing that I'd appreciate the help. Thanks again for all the help.
Consider initializing your random number generator at the beginning of your program:
Your logic is totally weird here:
It's useless to deincrement toss when it gets assigned the random number 2 statements later. And rand() % 1 won't work, because the remainder of anything divided by 1 will be 0 (except for decimals, but you're assigning to an integer so any fractions are thrown away).
C++ Syntax (Toggle Plain Text)
#include <ctime> srand(time(0));
toss--; counter++; toss = rand() % 1;
"Technological progress is like an axe in the hands of a pathological criminal."
All my posts may be freely redistributed under the terms of the MIT license.
All my posts may be freely redistributed under the terms of the MIT license.
So where is the function that has no input and no return value and upon calling it asks the user how many coin tosses and then simulates that number of coin tosses?
Dani the Computer Science Gal 
Follow my Twitter feed! twitter.com/DaniWeb
And if you're interested in Internet marketing there is twitter.com/DaniWebAds

Follow my Twitter feed! twitter.com/DaniWeb
And if you're interested in Internet marketing there is twitter.com/DaniWebAds
•
•
Join Date: Jan 2007
Posts: 21
Reputation:
Solved Threads: 0
Hey, thank you for all the replies I really appreciate it. Sorry I kind of disappeared but I got a bit sick after I posted this. I ended up getting it to work, so thank you all for the help. One quick question..did you all struggle when you first started C++ programming? I'm a big time perfectionist and it's driving me crazy that I'm having so much difficulty. If you did struggle what did you do to improve? Thanks again for the responses.
•
•
Join Date: May 2009
Posts: 2
Reputation:
Solved Threads: 0
•
•
•
•
Not only do you resurrect an old thread, you don't even know what language you're dealing with. This is a C++ forum, not BASIC. Random numbers are integers.
I had a look at my (dry cough) response and i know who did it. Im new to this site, and i had no idea it was and old thread because i found it in google.
![]() |
Similar Threads
- Max Consecutive Heads/Tails (Visual Basic 4 / 5 / 6)
- Making a program that will display the result of a coin (C++)
Other Threads in the C++ Forum
- Previous Thread: Input output problems
- Next Thread: Code Help - Restructure.
Views: 5886 | Replies: 8
| Thread Tools | Search this Thread |
Tag cloud for C++
6 add api array arrays beginner binary bitmap c++ c/c++ calculator char class classes code compile compiler console conversion convert count data delete desktop directshow dll encryption error file forms fstream function functions game getline givemetehcodez google graph homeworkhelper iamthwee ifstream input int integer java lazy lib linkedlist linux loop looping loops map math matrix memory microsoft newbie news node number output parameter pointer problem program programming project proxy python random read recursion recursive reference return sort string strings struct studio system template templates test text tree unix url variable vector video visual visualstudio win32 windows winsock word wordfrequency wxwidgets






