C Program: Guess the number game using while loop
Write a C program that generates a random number between 1 and 20 and asks the user to guess it. Use a while loop to give the user multiple chances until they guess the correct number.
Sample Solution:
C Code:
Sample Output:
Guess the number between 1 and 20: Input your guess: 20 Incorrect guess. Try again! Input your guess: 11 Incorrect guess. Try again! Input your guess: 12 Incorrect guess. Try again! Input your guess: 13 Incorrect guess. Try again! Input your guess: 17 Incorrect guess. Try again! Input your guess: 18 Incorrect guess. Try again! Input your guess: 19 Incorrect guess. Try again! Input your guess: 14 Incorrect guess. Try again! Input your guess: 1 Incorrect guess. Try again! Input your guess: 2 Incorrect guess. Try again! Input your guess: 5 Incorrect guess. Try again! Input your guess: 3 Incorrect guess. Try again! Input your guess: 7 Incorrect guess. Try again! Input your guess: 8 Incorrect guess. Try again! Input your guess: 6 Incorrect guess. Try again! Input your guess: 9 Incorrect guess. Try again! Input your guess: 10 Incorrect guess. Try again! Input your guess: 11 Incorrect guess. Try again! Input your guess: 12 Incorrect guess. Try again! Input your guess: 13 Incorrect guess. Try again! Input your guess: 14 Incorrect guess. Try again! Input your guess: 15 Incorrect guess. Try again! Input your guess: 16 Congratulations! You guessed the correct number in 23 attempts.
Explanation:
Here are key parts of the above code step by step:
- #include <stdio.h>, #include <stdlib.h>, #include <time.h>: These lines provide necessary header files for standard input/output, random number generation, and time functions.
- srand(time(NULL));: Seeds the random number generator using the current time.
- int targetNumber = rand() % 20 + 1;: Generates a random number between 1 and 20 using rand() and the modulo operator. The result is stored in 'targetNumber'.
- int userGuess;, int attempts = 0;: Declares variables to store the user's guess (userGuess) and the number of attempts made (attempts).
- printf("Guess the number between 1 and 20:\n");: Prints a message prompting the user to guess a number between 1 and 20.
- while (1) {: Starts an infinite while loop to give the user multiple chances. The loop will exit when the user guesses the correct number.
- printf("Enter your guess: ");, scanf("%d", &userGuess);: Prompts the user to input their guess and reads the input as an integer.
- attempts++;: Increments the attempts counter to keep track of the number of attempts.
- if (userGuess == targetNumber) { ... }: Checks if the user's guess is equal to the randomly generated target number.
- printf("Congratulations! You guessed the correct number in %d attempts.\n", attempts);: Prints a message along with the number of attempts if the guess is correct.
- break;: Exits the loop if the user's guess is correct.
- else { printf("Incorrect guess. Try again!\n"); }: Prints an error message if the user's guess is incorrect.
- return 0;: Indicates successful program execution.
- }: Closes the infinite "while" loop.
- }: Closes the "main()" function.
Flowchart:
C Programming Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Detect duplicate numbers using while loop.
Next: Calculate Factorial with while loop and User-entered positive integer.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics