For reproducibility needed for auto-grading, seed the program with a value of 2. In a real program, you would seed with the current time. In that case, every program's output would be different, which is what is desired but can't be auto-graded.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter6: User-defined Functions
Section: Chapter Questions
Problem 27SA
icon
Related questions
Question

9.16 LAB: Flip a coin

 

Write a program that simulates flipping a coin to make decisions. The input is how many decisions are needed, and the output is either heads or tails. Assume the input is a value greater than 0.

Ex: If the input is:

3

the output is:

tails heads tails

For reproducibility needed for auto-grading, seed the program with a value of 2. In a real program, you would seed with the current time. In that case, every program's output would be different, which is what is desired but can't be auto-graded.

Note: A common student mistake is to create an instance of Random before each call to rand.nextInt(). But seeding should only be done once, at the start of the program, after which rand.nextInt() can be called any number of times.

Your program must define and call the following method that randomly picks 0 or 1 and returns "heads" or "tails". Assume the value 0 represents "heads" and 1 represents "tails".
public static String headsOrTails(Random rand)

import java.util.Scanner;
import java.util.Random;

public class LabProgram {
public static String HeadsOrTails(Random rand) {
String coinFlip; // no need to "initialize" as it is definitely assigned just below

if (rand.nextInt(2) == 0)
coinFlip = "heads";
else // Added code
coinFlip = "tails";

return coinFlip;
}
/* Define your method here */
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);

Random rand = new Random();

int n = scnr.nextInt();

for(int i=0; i<n; i++){

System.out.println(headsOrTails(rand));

}

}

public static String headsOrTails(Random rand){

if(rand.nextInt(2)==0)

return "heads";

else

return "tails";
}
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Returning value from Function
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning