Generating random number in a range in C



To print random numbers within a range, we will have two input variables where we need to set the maximum and minimum values. Using these two values, we can display a random value within the specified range.

Example

Following is the input-output statement to understand the range of a random number:

Input: min = 4, max = 14 Output: 8, 10, 7 

Explanation: Any numeric value between 4 and 14 can be displayed in the specified range.

Generate Random Number Within a Range Using rand() with Modulus

The rand() function generates the random number while modulus operator return the remainder. To calculate the range of random number we use the following formula:

num = min + rand() % (max - min + 1) 

Here,

  • min: This shift the range to start from the min. The min define the minimum value. Make sure the final value is between min and max.
  • rand() % (max - min + 1) : This calculate the random number and the expression are mathematically represented.

Based on above statement,

// 37 % 11 -> remainder is 4 num = 4 + (37 % (14 - 4 + 1)); // num = 8 num = 4 + 4; 

Example

Following is the C program to print the random number in a range.

#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand(time(NULL)); int min = 4, max = 14; for (int i = 0; i < 3; i++) { int num = min + rand() % (max - min + 1); printf("%d ", num); } return 0; } 

The above program produces the following result:

13 13 11 

Generate Random Number Within a Range Using random() Function

The random() function is also similar to the rand() function to find a random integer value. The program logic is almost the same, only the function has changed.

Example

In this example, we print the total of 5 random values that range between 3 and 19.

#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srandom(time(NULL)); int min = 3, max = 19; for (int i = 0; i < 5; i++) { int num = min + (random() % (max - min + 1)); printf("%d ", num); } return 0; } 

The above program produces the following result:

17 9 7 13 15 
Updated on: 2025-06-02T14:13:39+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements