[C] Random
sapete scrivere un programma che assegni alla variabile n degli interi casuali compresi tra i seguenti intervalli?
a) 1<= n <= 100
b) -1<= n <= 1000
grazie
a) 1<= n <= 100
b) -1<= n <= 1000
grazie
Risposte
int min, max; int n; char ch; printf("\nInserisci il minimo: "); scanf("%d", &min); printf("\nInserisci il massimo: "); scanf("%d", &max); do { n = min + (rand() % (1 + max - min)); printf("\nn = %d", n); printf("\tPremi un tasto per continuare o ESC per uscire."); ch = getch(); } while (ch != ESC);
@eugenio.amitrano : sarebbe meglio non fornissi interamente la risposta quando l'autore non mostra i suoi tentativi. La prossima volta fornisci un aiuto meno generico. Comunque il tuo codice è per il 90% inutile e manca la chiamata a srand.
@Andrea80 : il regolamento prevede un tuo tentativo di risoluzione. Lo scopo di questa regola è che risolvere gli esercizi da soli, eventualmente con un aiuto, è più istruttivo che vedere la soluzione.
Per i tuoi scopi ti invito quindi a vedere le funzioni srand e rand. La versione italiana dello stesso sito è molto più incompleta. Comunque srand va chiamato solo una volta e per i tuoi scopi è suggeribile usarlo con la funzione time(0).
@Andrea80 : il regolamento prevede un tuo tentativo di risoluzione. Lo scopo di questa regola è che risolvere gli esercizi da soli, eventualmente con un aiuto, è più istruttivo che vedere la soluzione.
Per i tuoi scopi ti invito quindi a vedere le funzioni srand e rand. La versione italiana dello stesso sito è molto più incompleta. Comunque srand va chiamato solo una volta e per i tuoi scopi è suggeribile usarlo con la funzione time(0).
Se invece dici C ma intendi C++ potresti anche vedere la nuova libreria random del C++ (introdotta nello standard del 2011). Questa libreria è molto più completa e versatile della precedente e possiede proprietà statistiche migliori. Non penso che però il tuo professore lo accetterebbe e comunque è più difficile da usare.
scusate sono nuovo. Non mi ero posto il problema. La prossima volta proverò a fornirmi una mia soluzione.
Ti è chiaro come creare un numero casuale intero compreso tra due valori?
"vict85":
@eugenio.amitrano : sarebbe meglio non fornissi interamente la risposta quando l'autore non mostra i suoi tentativi. La prossima volta fornisci un aiuto meno generico. Comunque il tuo codice è per il 90% inutile e manca la chiamata a srand.
Ciao vict85,
mi dispiace e la prossima volta sarò più attento!
Conosco le regole del forum e non pensavo di averle violate.
Ho pensato che la mia risposta, o meglio il codice, essendo una generalizzazione degli esercizi presentati da Andrea80 e non essendo quindi una risoluzione diretta, poteva essere un valido aiuto per imparare a trattare tutti i problemi di questo tipo, fornendo la visione dell'intervallo min-max.
Inoltre, ho pensato che la chiamata ad srand poteva essere inutile allo scopo.
Insomma, ho pensato che per Andrea80, prendere questo codice, copiarlo nel compilatore dentro un main e lanciarlo in esecuzione lo avrebbe aiutato molto a capire come svolgere tutti gli esercizi dello stesso genere.
Mi rendo conto che è sempre più difficile aiutare qualcuno senza commettere errori... per fortuna che c'è chi controlla.
Un saluto, Eugenio