Si consideri la seguente funzione conta() che prende in input un vettore di numeri di lunghezza n (assumendo che n sia compreso fra 2 e 100):
int conta(int vett[], int n) { int i, k=0; int j=1; for(i=0; i < n-1; i++) if(vett[i] < vett[i+1]) j++; else { if(k < j) k=j; j=1; } return k; }Quale delle seguenti affermazioni è vera?
Risposte:
- la funzione restituisce il numero di interi presenti nel vettore
- la funzione restituisce il massimo valore presente nel vettore
- la funzione restituisce la lunghezza della più lunga sottosequenza ordinata (in modo strettamente crescente) all'interno del vettore
- nessuna delle precedenti affermazioni è vera.
Soluzione: c / d.
Risposta ufficiale
Se la sottosequenza più lunga non è l’ultima del vettore, allora la funzione ne restituisce la lunghezza (risposta c); se, invece, questa sottosequenza è l’ultima del vettore, il programma non ne conta correttamente la lunghezza (risposta d).
Si decide, dunque, di ritenere valida sia la risposta c che la d.