Si consideri il seguente frammento di programma:
void bang(int *a, int l) { int i=0, t=0, loop=1; while(loop) { if(a[i] > 0) { a[t]=a[i]; t++; } if(i < l-1) { i++; } else { loop=0; } } }Si supponga che si richiami bang() passando come primo paramento il seguente vettore: {33, 3, -22, -18, -30, 27, 1, -42, -14, -19, -1, 23, -40, 26, 15, 30, 6, 40, -12, -34} e come secondo parametro il numero 20.
Scrivere l'insieme dei valori in a al termine dell'esecuzione di bang().
Soluzione: 33 3 27 1 23 26 15 30 6 40 -1 23 -40 26 15 30 6 40 -12 -34
La funzione scansiona la sequenza e copia ordinatamente solo i valori positivi.
I valori da -1 fino alla fine rimangono inalterati.