Non capisco una cosa: perchè RIDEFINISCI la variabile max?
Questo è il tuo codice:
codice:
1 double x,y,z,max;
2 main{
3 if(x>y && x>z)double max=x;
4 if(y>x && y>z)double max=y;
5 if(z>x && z>y)double max=z;
6 cout << max;
7 }
Io l'avrei fatto così:
codice:
1 double x,y,z,max;
2 main{
3 if(x>y && x>z) max=x;
4 if(y>x && y>z) max=y;
5 if(z>x && z>y) max=z;
6 cout << max;
7 }
In fin dei conti, la variabile max l'hai già dichiarata nella prima linea! Aggiungendo di nuovo double, la ridefinisci... perchè? Riefindo la variabile max (anteponendo di nuovo il tipo double), si rientra nel caso della visibilità delle variabili nei blocchi di codice: la tua 'nuova' variabile max (creata all'interno del ramo then del tuo if) OSCURA la variabile globale... e dopo aver avuto il suo valore, cessa di esistere, per il codice esterno al tuo if (che vede quella globale, non ancora toccata).
Ho visto che hai fatto la stessa cosa per il codice sottostante... credo che il problema sia lo stesso.
Ciao.