Si consideri la seguente procedura:
#define N 10 int vett[N]; void p() { int i; for(i=0; i < N; i++) vett[i]=i; for(i=0; i < N; i++) vett[i]=vett[vett[i]%(N-i)]; }Indicare il contenuto di tutti gli elementi del vettore vett[] al termine della procedura.
Soluzione: 0 1 2 3 4 0 2 1 0 0
Dopo il primo for
0 1 2 3 4 5 6 7 8 9
Il secondo for assegna i valori i%(n-i)
- 0%10 = 0, 0 1 2 3 4 5 6 7 8 9
- 1%9 = 1, 0 1 2 3 4 5 6 7 8 9
- 2%8 = 2, 0 1 2 3 4 5 6 7 8 9
- 3%7 = 3, 0 1 2 3 4 5 6 7 8 9
- 4%6 = 4, 0 1 2 3 4 5 6 7 8 9
- 5%5 = 0, 0 1 2 3 4 0 6 7 8 9
- 6%4 = 2, 0 1 2 3 4 0 2 7 8 9
- 7%3 = 1, 0 1 2 3 4 0 2 1 8 9
- 8%2 = 0, 0 1 2 3 4 0 2 1 0 9
- 9%1 = 0, 0 1 2 3 4 0 2 1 0 0