Si consideri la seguente funzione:
#define N 5 void calcola() { int i, vett[N]; for(i = 0; i < N; i++) vett[i]=i; for(i = 0; i < N; i++) vett[i]=vett[(vett[i]*i)%N]; }Indicare il contenuto del vettore vett al termine dell'esecuzione della funzione calcola.
Risposte:
- [0, 1, 4, 4, 1]
- [0, 1, 4, 3, 1]
- [0, 1, 4, 3, 4]
- nessuna delle precedenti.
Soluzione: a (0, 1, 4, 4, 1).
Osserva
- i=0: vett[0] = vett[(vett[0]*0)%5] = vett[(0*0)%5] = vett[0%5] = vett[0] = 0
- i=1: vett[1] = vett[(vett[1]*1)%5] = vett[(1*1)%5] = vett[1%5] = vett[1] = 1
- i=2: vett[2] = vett[(vett[2]*2)%5] = vett[(2*2)%5] = vett[4%5] = vett[4] = 4
- i=3: vett[3] = vett[(vett[3]*3)%5] = vett[(3*3)%5] = vett[9%5] = vett[4] = 4
- i=4: vett[4] = vett[(vett[4]*4)%5] = vett[(4*4)%5] = vett[16%5] = vett[1] = 1