Si consideri il seguente frammento programma:
int main(void) { int T[25], S[10], W[5], i; i=0; while(i <= 24) S[T[i++]-1]++; i=0; while(i <= 9) W[S[i++]-1]++; }Si supponga che i vettori T, S e W inizialmente contengano i seguenti valori:
- T = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 10, 10, 10];
- S = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- W = [0, 0, 0, 0, 0];
Scrivere il contenuto del vettore W dopo l’esecuzione del programma.
Soluzione: W = {2, 3, 4, 0, 1}
Il primo for() scorre il vettore T e scrive in S il numero di 1, 2, 3, ..., 10
S = {2, 3, 3, 3, 1, 2, 2, 5, 1, 3}
Il secondo for() scorre il vettore S e scrive in W il numero di 1, 2, 3, 4 e 5
W = {2, 3, 4, 0, 1}