Ritorna alla pagina del corso.
Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.
01: /*
02: 5. usi rand() per riempire un array di 100 elementi con numeri interi
03: univoci tra 1 e 300 e lo stampi
04: */
05:
06: #include<stdio.h>
07: #include<stdlib.h>
08: #include<time.h>
09:
10: #define ASIZE (100)
11:
12: int main(int argc, char **argv){
13:
14: srand(time(0));
15:
16: int a[ASIZE];
17:
18: for(int i = 0; i < ASIZE; ++i)
19: {
20: int n, trovato;
21: do
22: {
23: n = 1 + rand() % 300;
24: trovato = 0; // trovato lo inizializzo a falso, rimarra' falso se effettivamente non trovo il
25: // valore di n nell'array
26: for(int j = 0; j < i; ++j)
27: {
28: if(a[j] == n)
29: {
30: trovato = 1; // segno che il valore di n era gia' presente
31: break; // interrompo il for(j) che tanto e' inutile continuare
32: }
33: }
34: }
35: while(trovato); // equivalente a while(trovato == 1);
36:
37: a[i] = n; // arrivo qui se e solo se il valore di n non era presente nell'array
38: }
39:
40: for(int i = 0; i < ASIZE; ++i)
41: {
42: printf("L'elemento di indice #%d vale %d\n", i, a[i]);
43: }
44: return 0;
45: }
46:
47: