Si consideri la seguente funzione
void calcola(int* vett, int n) { int x,y; int i, j; for(i=0; i < n; i++) { y=vett[0]; for(j=0; j < n-1; j++) { x=vett[j+1]; vett[j+1]=y; y=x; } vett[0]=y; } }Assumendo che vett contenga il vettore [10,9,8,7,6,5,4,3,2,1], quali sono gli elementi di vett dopo l'esecuzione di calcola (usando 10 come secondo parametro)?
Risposte:
- [1,2,3,4,5,6,7,8,9,10]
- [10,9,8,7,6,5,4,3,2,1]
- [1,3,5,7,9,2,4,6,8,10]
- nessuna delle precedenti
Soluzione: b ([10,9,8,7,6,5,4,3,2,1])
Ad ogni passo gli elementi del vettore si spostano in avanti in modo ciclico (l'ultimo elemento diventa il primo).
Dopo 10 passi il vettore ritorna allo stato iniziale...