|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Oct 2000
Messaggi: 552
|
C domanda su funzione rand()
Ho un dubbio riguardo l'utilizzo della funzione rand() in un esercizio presente sul mio manuale di C.
Il codice è questo: #include <stdio.h> #include <stdlib.h> int main(){ int i; unsigned seed; printf("Inserire il seme: "); scanf("%u", &seed); srand(seed); for(i=1;i<=10;i++){ printf("%10d",1+rand()%6); if(i%5) == 0; printf("\n"); } return 0; } La cosa che non capisco è a cosa servano queste due righe di codice: if(i%5) == 0; printf("\n"); Grazie |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Nov 2003
Messaggi: 42
|
if(i%5) == 0;
mi sembra sbagliato...
__________________
ANGI |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Probabilmente volevano scrivere questa cosa:
if((i%5) == 0) printf("\n"); |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Nov 2003
Messaggi: 42
|
Quote:
__________________
ANGI |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2003
Città: Torino
Messaggi: 63
|
Angelica ha ragione, infatti l'operatore % (ad es. a%b) restituisce il modulo di un numero (nell'esempio a) diviso un altro (b). Il modulo non è altro che il resto della divisione, ad es 14%5 == 4.
Nal tuo programma la variabile i è multiplo di 5 ogni 5 cicli (ma dai?!?) è il risultato del modulo è zero ==> ogni 5 cicli stampa un "a capo". Tutto chiaro?
__________________
AMD K6 450 MHz, Epox MVP3G2 FSB 100 MHz, 320 MB RAM, HDD IBM 7200 60 GB, VooDoo III (è vecchia ma per diablo II va ancora bene |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
giusto è il resto di divisione intera, quindi se i=5 viene 5/5=1 quindi resto 0 e stampa un \n , poi se i=10 viene 10/5=2 con resto 0 e stampa \n
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
... e la stessa operazione è svolta nell'usare il rand(), che restituisce un int (mi sembra); quindi per avere un numero (pseudo)casuale da 0 a 5 si scrive rand()%6 (resto da 0 a 5
Byez
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:18.



















