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: 6. riempa un array di 100 elementi con i numeri tra 1 e 100 in ordine
03: e successivamente lo "mescoli", ovvero scambi di posizione in maniera
04: casuale i vari elementi dell'array, e poi lo stampi. Suggerimento: si
05: scorra l'array elemento per elemento e per ciascun elemento generare
06: casualmente (rand()) l'indice di un altro elemento con cui scambiarlo.
07: */
08:
09: #include<stdio.h>
10: #include<stdlib.h>
11: #include<time.h>
12:
13: #define ASIZE (100)
14:
15: int main(int argc, char **argv){
16:
17: srand(time(0));
18:
19: int a[ASIZE];
20:
21: for(int i = 0; i < ASIZE; ++i)
22: {
23: a[i] = i + 1; // riempo l'array con numeri da 1 a 100 in ordine
24: }
25:
26: // ciclo nuovamente su array e genero indice a caso con cui scambiare
27: // l'elemento in esame
28: for(int i = 0; i < ASIZE; ++i)
29: {
30: // genero indice di altro elemento con cui scambiare l'elemento di indice i
31: int j = rand()%ASIZE;
32:
33: // per lo scambio mi devo appoggiare a un'altra variabile temporanea
34: int tmp = a[j];
35: a[j] = a[i];
36: a[i] = tmp;
37: }
38:
39: for(int i = 0; i < ASIZE; ++i)
40: {
41: printf("L'elemento di indice #%d vale %d\n", i, a[i]);
42: }
43: return 0;
44: }
45:
46: