How to generate a random number in a given range in C. Examples:
Input : Lower = 50, Upper = 100, Count of random Number = 5 Output : 91 34 21 88 29 Explanation: lower is the lower limit of the range and upper is the upper limit of the range. Output contains 5 random numbers in given range.
C does not have an inbuilt function for generating a number in the range, but it does have rand function which generates a random number from 0 to RAND_MAX. With the help of rand () a number in range can be generated as num = (rand() % (upper – lower + 1)) + lower
C
// C program for generating a // random number in a given range. #include <stdio.h> #include <stdlib.h> #include <time.h> // Generates and prints 'count' random // numbers in range [lower, upper]. void printRandoms( int lower, int upper,
int count)
{ int i;
for (i = 0; i < count; i++) {
int num = ( rand () %
(upper - lower + 1)) + lower;
printf ( "%d " , num);
}
} // Driver code int main()
{ int lower = 5, upper = 7, count = 1;
// Use current time as
// seed for random generator
srand ( time (0));
printRandoms(lower, upper, count);
return 0;
} |
Output:
7
Time complexity: O(N) where N is the count of random numbers to be generated
Auxiliary Space: O(1)
Note: Output generated on each run may be different because the number is generated randomly.