FAQ: Conditionals & Logic - Coin Flip Demo

This community-built FAQ covers the “Coin Flip Demo” exercise from the lesson “Conditionals & Logic”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn C++

FAQs on the exercise Coin Flip Demo

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

In the coin flip problem, when i put some number in place of (time(NULL)), the output comes out to be tails always. Why is it so?/

1 Like

Hello there. I would also like to know :slightly_smiling_face:

You can pass in a pointer to a time_t object that time will fill up with the current time (and the return value is the same one that you pointed to). If you pass in NULL , it just ignores it and merely returns a new time_t object that represents the current time.

So when you seed that value and then do

  int	coin = rand() % 2;

You then flip based on that value % 2. What it equates to determines if its heads or tails. What it sounds like is based on that link is that your feeding it a constant value, so your getting a constant result.

So, with what it ask you to do, you are always returning the else statement.

#include <iostream>
#include <stdlib.h>
#include <ctime>

int main()
{

  // Create a number that's 0 or 1
  srand(time(NULL));
  int coin = rand() % 2;

  // If number is 0: Heads
  // If it is not 0: Tails

  if (coin == 0)
  {
    std::cout << "Heads\n";
  }
  else
  {
    std::cout << "Tails\n";
  }
}

To add to Scott’s excellent reply, you could insert this line of code just below the line with time(NULL) in it:

std::cout << time(NULL)<< "\n";

This way, the value that is being used as a pseudorandom number, or a value very close to it, will be displayed, too.

1 Like

Interesting but difficult to learn complex concepts.

1 Like

i’m on the coinflip exercise and the run button is there, but is not actionable, like my cursor doesn’t change when going over it, cant click. nothing. directions are to run the program 5 times… so i cant click net until i run it ://