Dire quale dei seguenti frammenti di programma calcola in j l’indice del primo elemento positivo del vettore di interi v contenente n elementi, posto che j sia inizializzato a zero (potete assumere che il vettore contenga sempre almeno un elemento positivo):
-
for(i=0; i < n; i++) if(v[i] > 0) j=i;
-
for(i=n-1; i >= 0; i--) if(v[i] > 0) v[j]=v[i];
-
for(i=n-1; i >= 0; i--) if(v[i] > 0) j=i;
Soluzione: c.
Indentando il codice si può valutare correttamente…
- Assegna a j l’indice dell’ultimo elemento positivo
for(i=0; i < n; i++) if(v[i] > 0) j=i;
- …
for(i=n-1; i >= 0; i--) if(v[i] > 0) v[j]=v[i];
- Scorre il vettore al contrario e assegna a j l’indice del primo elemento positivo
for(i=n-1; i >= 0; i--) if(v[i] > 0) j=i;