[C++]

marcoeffe97
Salve. A breve ho l'esame orale di Fondamenti di Informatica. Il professore mi ha assegnato un esercizio da svolgere e lo devo consegnare il giorno della seduta. La traccia dell'esercizio è questa:
"Avendo a disposizione 3 variabili int vet[], int n e int t, scrivere una funzione che deve cercare la prima coppia v+v[i+1] che risulti essere > t (potrebbe trovarsi anche alla fine del vettore). Se esiste restituire i, altrimenti -1."
Io ho provato a svolgerla in questo modo, ma il programma mi dà errore :(
int cerca(int vet[],int n,int t){
for(int i=0;i if(v+v[i+1]>t){
return i;
else
return -1;
}
}
}
In pratica, l'errore è che mi restituisce sempre -1, indipendentemente se trova la coppia oppure no. Vi prego aiutatemi! :(

Risposte
iggy1
Non funziona perché al primo confronto <= entra nell'else, ritorna -1 ed esce dalla procedura senza controllare gli altri elementi del vettore.

int cerca(int vet[],int n,int t){
    for(int i=0;i<n-1;i++){
        if((vet[i]+vet[i+1])>t){
            return i;
        }
    }
    return -1;
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.