Non vedo errori di sintassi ,e non ho provato il programma !
comunque mi sembra che ci sia un errore di logica ,
il controllo in questione
codice:
if(numero > max){
max = numero;
}
lo devi inserire all' interno del while , se esterno confrontera max col solo ultimo numero
inserito mentre se interno con ogni numero inserito.