[C++]
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!
"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
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
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; }