//Escreva um algoritmo que leia certa quantidade de números e imprima o maior deles e quantas vezes o maior numero foi lido. A quantidade de números a serem lidos deve ser fornecidos pelo usuário.
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.println("Informe a quantidade de valores que deseja declarar: ");
int declara = in.nextInt();
double recebido, recebidoMax =0, contador =1;
for(int i = 0; i < declara; i ++) {
System.out.println("Informe o "+ (i+1)+"ª valor");
recebido = in.nextDouble();
if(recebido > recebidoMax) {
recebidoMax = recebido;
contador = contador + 1;
}
}
System.out.println("Maior valor recebido = "+recebidoMax);
System.out.println("Quantas vezes o maior número de repete = "+ contador);
in.close();
}
no console seu o usuário digita o maior primeiro ele não consegue contar o mesmo valor se houver repetição, em outros casos o código funciona. Agradeço desde já que puder me auxiliar.
Eu fiz alguns testes com o código e não achei o erro especificado, talvez eu não tenha interpretado direito.
Mas, nos testes que eu fiz eu achei alguns resultados que não estavam 100% corretos e fiz umas modificações.
Você pode primeiro armazenar os números digitados em um array de números, depois fazer dois loops for: um que encontre o maior número e outro que verifique quantas vezes ele se repete.
Testei isso e funcionou perfeitamente!
Eu sugiro que você utilize um vetor para armazenar os valores int.
Nesse trecho, você pode utilizar, por exemplo:
Scanner in = new Scanner(System.in);
System.out.println("Informe a quantidade de valores que deseja declarar: ");
int numeros = in.nextInt();
int[] declara = new int[numeros]
Uma dica: não inicie um contador com um valor fixo que não seja 0, também por isso, seu resultado não esta saindo como deveria.
E aí, para preencher o vetor:
for (int i = 0; i < numeros; i++) {
System.out.println("Informe o " + (i + 1) + "ª valor");
declara[i] = in.nextInt();
if (declara[i] >= recebidoMax) {
recebidoMax = declara[i];
contador += 1;
}
}
Normalmente, quando vamos armazenar vários dados do mesmo tipo (nesse caso, números inteiros) inseridos pelo usuário, usamos Arrays, como Vetores e Matrizes, isso ajuda muito.
Já para esse trecho:
Acontece por conta dessa condição:
Resolveria se você escrevesse: if(recebido >= recebioMax). Dessa forma, se o usuário entrar com o mesmo número todas as vezes, o contador fará seu trabalho corretamente.