Salve sono alle prime armi in programmazione, sono da un paio di giorni a cercare di capire come fare un programma che trovi il massimo tra n numeri inseriti in input e dire quante volte compare (tra i numeri inseriti).
Premetto che non abbiamo fatto array ancora e gli unici costrutti che conosco sono while, if, for, do while insomma quelli di base.
vi posto il codice da me creato.
codice:
import java.util.Scanner;public class Massimo {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int num;
int max;
int count = 0;
boolean done = false;
while(!done)
{
System.out.println("Inserisci il numero o premi 'Q' per uscire"); //Visualizza la stringa "Inserisci numero"
String input = in.next(); // assegna alla variabile input il valore inserito in input
if (input.equalsIgnoreCase("Q")) //se il valore inserito in input è q o Q esci dal ciclo
done = true;
else
{
int numeroInserito = Integer.parseInt(input); //altrimenti il numero appena inserito in input è il massimo
num = numeroInserito;
max = num;
count++;
if (numeroInserito > max)
max = numeroInserito;
System.out.println("il massimo è :" + max);
System.out.println("Il numero di massimi trovati e'" + count );
}
}
}
}
Il problema che ho è che se inserisco sempre numeri maggiori dei precedenti, il programma mi calcola esattamente quello che voglio, ma se inserisco ad esempio un numero minore del precedente mi dice che quello è il massimo e aggiorna il contatore.
Il problema l'ho capito ma non riesco a esprimere il confronto tra il numero precedentemente inserito e quello successivo. Come potrei fare?? qualcuno mi può dare una mano a risolverlo senza modificare con altri costrutti particolari questo mio codice??
Grazie spero di essere stato abbastanza chiaro.