C Program: Generate a Random Matrix
To generate a random matrix, we need to generate random numbers.
In this C program, we will be making use of the rand()
function under the <stdlib.h>
header file. The rand()
function generates numbers from 0
to RAND_MAX
, the value of which is system dependent.
You can make a quick check of the RAND_MAX
value in your system.
printf("%d", RAND_MAX);
To generate random numbers from 0 to 99 we need to take rand()
modulo 100, or rand() % 100
.
The below program generates a square matrix of random numbers from 0 to 99. We make use of two for
loops: one to loop over the rows and the other to loop over the columns. Notice the space in the statement printf("%d ", rand()%100);
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned short i, j, n;
printf("Enter the dimension of the matrix: ");
scanf("%hu", &n);
for(i = 0; i < n;i++) {
for(j = 0; j < n;j++) {
printf("%d ", rand()%100);
}
printf("\n");
}
return 0;
}
We can modify the above code to accept the row and column dimensions separately to generate an $m$ x $n$ matrix ($m$ rows and $n$ columns).
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned short i, j, m, n;
printf("Enter the row dimension of the matrix: ");
scanf("%hu", &m);
printf("Enter the column dimension of the matrix: ");
scanf("%hu", &n);
for(i = 0; i < m;i++) {
for(j = 0; j < n;j++) {
printf("%d ", rand()%100);
}
printf("\n");
}
return 0;
}
We run the program for $3 \times 4$ matrix.
$ ./a.out
Enter the row dimension of the matrix: 3
Enter the column dimension of the matrix: 4