Ciao a tutti,volevo chiedere un chiarimento.
In fondo al capitolo del libro che sto leggendo,c'è un esercizio che dice di scrivere delle istruzioni che generino un numero casuale, e lo assegnino alla variabile n.
Il numero casuale deve essere compreso fra: 1 e 2
1 e 100
0 e 9
-1 e 1
-3 e 11
1000 e 1112
Ho scritto questo codice che genera 500 numeri:
#include<iostream.h>
#include<stdlib.h>
int main()
{
int n;
for(int i=1; i<=500 ; i++) // Genera 500 numeri casuali
{
n=1+rand()%2; //Genera numeri casuali compresi fra 1 e 2
cout << n << " ";
if(i%5==0) // Allinea i nummeri 5 per riga
cout << endl;
}
return 0;
}
Questo codice va bene cambiando i parametri di rand solo per i primi 5 parametri della lista sopra, per l'ultimo (1000 e 1112), ho dovuto cambiare il codice come segue:
#include<iostream.h>
#include<stdlib.h>
int main()
{
int n;
for(int i=1; i<=500 ; i++) // Genera 50 numeri casuali
{
n=1+rand()%112; //Genera numeri casuali compresi fra 1 e 112 e somma al numero generato il valore 1000
cout << n+1000 << " ";
if(i%5==0) // Allinea i nummeri 5 per riga
cout << endl;
}
return 0;
}
Mettendo l'istruzione 1000+rand()%1112; mi genera numeri a casaccio, volevo sapere se qualcuno mi sa dire il perché, e se l'istruzione rand non funziona correttamente, mettendo valori troppo alti come valore di scala davanti all'istruzione rand.
Grazie