//--- generaNumeriCasuali.c ---
/*
Le funzioni utilizzate per la generazione di numeri casuali sono srand(...) e rand().
La funzione srand(...) cambia il numero di base (seed/seme) per la generazione dei numeri pseudo-casuali di rand(), altrimenti rand() genererebbe sempre gli stessi numeri,ad ogni esecuzione del programma.
Per poter fornire a srand un seme sempre diverso viene utilizzata la funzione time(NULL), presente nell’ header file time.h della libreria standard del C, che restituisce il numero di secondi trascorsi tra l'istante attuale e il I Gennaio 1970.
La funzione rand() genera dei numeri compresi tra 0 e RAND_MAX (32767). Per limitare i numeri generati all'intervallo 1 - 100, viene utilizzata la seguente procedura:
- il numero generato da rand() viene diviso per il valore della costante MAXRAND (#define MAXRAND 100) e si prende il resto;
- al resto si somma il valore 1.
*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <process.h>
#include <ctype.h>
#include <float.h>
#include <math.h>
#define MAX 10
#define MAXRAND 100
int main(int argc, char *argv[])
{
int n;
printf("\n\n Generazione di numeri casuali, compresi tra 1 e 100, senza cambiamento di seme \n ");
printf(" (senza l'utilizzo della funzione srand(arg) ) \n\n\t ");
for (int i=0; i<MAX;i++)
{
n = rand() % MAXRAND +1;
printf("%d\t", n);
}
//
printf("\n\n\n\n Generazione di numeri casuali, compresi tra 1 e 100, con cambiamento di seme \n ");
printf(" (con l'utilizzo della funzione srand(arg)) \n\n");
time_t seconds;
srand(time(NULL));
seconds = time(NULL);
printf("\n N. ore / N. secondi a partire da January 1, 1970 = %ld / %ld \n\n\t", seconds/3600, seconds);
for (int i=0; i<MAX;i++)
{
n = rand() % MAXRAND +1;
printf("%d\t", n);
}
printf("\n\n");
system("PAUSE");
printf("\n\n FINE - premere un tasto per continuare \n ");
getch();
}