0
Why my code generating the same matrix all the time
#include <iostream> using namespace std; int main(void) { const int S = 9; int matrix[S][S]; // filling matrix with random numbers between 0 and 99 for (int i = 0; i < S; i++) { for (int k = 0; k < S; k++) { matrix[i][k] = rand() % 100; } } // print matrix for (int i = 0; i < S; i++) { for (int k = 0; k < S; k++) { printf("%3d", matrix[i][k]); } printf("\n"); } }
2 Réponses
+ 4
hello bdjdndnd hdhdbd ,
rand() function by itself can't generate random numbers.
"""
You'll need to use 2 libraries to generate random numbers.
1. ctime
2. cstdlib
Use srand and rand functions
srand seeds value for pseudo-random generator
rand returns random value based on seeded value. using rand without any call to srand will give results as if srand was seeded by 1. It'll not give you really random nos so pass time(0) as arg to srand as srand(time(0));
Now rand is ready to use but every time it'll return value b/w 0 and MAX_RAND so trick is using %.
Using rand()%n will give random no b/w 0 to n.
To get no.s b/w 1 to 100 use 1+rand()%100;
Why % works? Well, modulus division by n makes sure that result will be less than n.//got it?
"""
quote of my own answer(little customized) :
https://www.sololearn.com/discuss/2030471/?ref=app
+ 1
you are right,
thanks a lot