C - Limiting Input Using a for Loop

Introduction

You can use a for loop to limit the amount of input from the user.

Each iteration of the loop will permit some input to be entered.

In the following code user will guess a number that the program has picked.

It uses one for loop and if statements.

Demo

#include <stdio.h>

int main(void)
{
  int chosen = 15;                    // The lucky number
  int guess = 0;                      // Stores a guess
  int count = 3;                      // The maximum number of tries

  printf("\nThis is a guessing game.");
  printf("\nI have chosen a number between 1 and 20"
                                     " which you must guess.\n");

  for( ; count > 0 ; --count)
  {//from w w w.ja v  a  2 s. c  om
    printf("\nYou have %d tr%s left.", count, count == 1 ? "y" : "ies");
    printf("\nEnter a guess: ");      // Prompt for a guess
    scanf("%d", &guess);              // Read in a guess

    // Check for a correct guess
    if(guess == chosen)
    {
      printf("\nCongratulations. You guessed it!\n");
      return 0;                       // End the program
    }
    else if(guess < 1 || guess > 20)  // Check for an invalid guess
      printf("I said the number is between 1 and 20.\n ");
    else
      printf("Sorry, %d is wrong. My number is %s than that.\n",
                            guess, chosen > guess ? "greater" : "less");
  }
  printf("\nYou have had three tries and failed. The number was %d\n",
                                                                  chosen);
  return 0;
}

Result

The number of guesses that can be entered is controlled by this loop:

for( ; count > 0 ; --count)
{
        ...
}

You check whether it's correct with these statements:

if(guess == chosen)
{
      printf("\nCongratulations. You guessed it!\n");
      return 0;                         // End the program
}

If the guess is correct, you display a suitable message and execute the return statement.

Related Example