Dificuldade com a utilização de um Contador [RESOLVIDO]

Nao estou entendo por que não conta o numero vezes que o maior aparece.

Programa em Java que leia uma certa quantidade de números e em
seguida leia os números. Imprima o maior deles e quantas vezes o maior
número foi lido. A quantidade de números a serem lidos deve ser fornecida
pelo usuário. Assuma que o usuário sempre fornecerá um número positivo.

Scanner scan = new Scanner(System.in);
	
int Quantidade, Contador = 0; 
double Valor, MaiorValor = 0; 
	
System.out.println("Digite a quantidade numeros: ");
Quantidade = scan.nextInt();

for(int i=0;i<Quantidade;i++){
	System.out.print("Digite o numero: ");		
	Valor = scan.nextDouble(); 
	if(Valor>MaiorValor){
		MaiorValor=Valor;
		Contador++;
	}
}
System.out.println(MaiorValor);
System.out.println("O maior valor foi lido "+Contador+" vezes");

@Mailson_Anselmo,
o que está acontecendo é que você está contando todos os números que estão sendo lidos,

Eu sugiro você adicionar um arraylist,
e para cada número lido,
após verificar se ele é o maior e atribuir para a váriavel MaiorValor,
adicione o número lido ao teu arraylist.

Depois de inserir todos os números informados pela aplicação, percorra o arraylist,
calculando quantas vezes o MaiorValor informado aparece.

Abraço,

1 curtida

só oque você precisa mudar é colocar um if caso o numero seja igual ao maior ele incrementa a Quantidade. e outra coisa quando você encontra um numero que seja maior você tem que reiniciar o contador.

obs = variáveis são declaradas com iniciais minúsculas.

abaixo como ficaria o codigo alterado

if (Valor > MaiorValor) {
     MaiorValor = Valor;
     Contador = 1;
   } else if (Valor == MaiorValor) {
     Contador++;
}
1 curtida

O problema esta aqui:

if(Valor>MaiorValor){

voce esta usando Eclipse? Da uma debugada que vc vai matar o problema rapidao :smiley:

Obrigado gente consegui.

Deu certo “Sandro_Machado” !!

e tentarei fazer tambem usando ArrayList “wagnerps”.

JAVA

SOLUÇÃO:

Scanner scan  = new Scanner(System.in);
	
int  quantidade;
int valor = 0;
int maior = 0;
int contador = 0;
	
System.out.println("Digite a quantidade de numeros: ");

quantidade = scan.nextInt();

for(int i=0;i<quantidade;i++){
	
	System.out.print("Digite o numero: ");

	valor = (-1)*scan.nextInt();

	if(valor>maior){
		maior = valor;
		contador = 1;
	}else if(valor==maior){
		contador++;
	}
}

System.out.println(maior+" é o maior e se repeti "+contador+" vezes.");