Originariamente Scritto da
Skywolf
per testare un programma che ho scritto, che dovrebbe implementare la struttura dati "albero di decisioni" in C (in C++ era più facile ma mi piace farmi male) ho messo nel main un codicillo che dovrebbe, ad apprendimento completato, stampare l'uscita dell'albero per gli ingressi che gli do io.
Succede che l'uscita vale 0 per ogni scelta degli ingressi.
Ma se mi faccio stampare l'albero vedo che a volte dovrebbe essere 0, a volte 1.
Vedo per quale combinazione degli ingressi dovrebbe valere 1, ma niente.
Controllo che segua i rami giusti dell'albero a seconda dell'ingresso: lo fa.
Ma l'uscita è sbagliata.
Disperato, vado nella routine che dovrebbe ricavare l'output dell'albero in funzione dell'input e, NELLA routine, mi faccio stampare l'output.
E
questo è giusto
In pratica, sono nella seguente condizione (semplifico)
main(){
robba
printf("%lf",calcolaOutput(parametri));
}
double calcolaOutput(parametri){
robba
return OutputNodoGiusto(parametri);
}
double OutputNodoGiusto(parametri){
robba
printf ("%lf",Output);
return Output;
}
Dovrebbe stampare due volte la stessa cosa, no?
No.