Problema com for (java)

1 resposta
MathHenrique
Tive um problema com um exercício de java no for.

Basicamente o problema fala que:
Três candidatos a prefeitura: Fulano, Beltrano e Ciclano, sendo seus números eleitorais 1, 2, 3 respectivamente.
-Sabendo que os votos se forem diferentes destes números serão considerados votos nulos;

  • o números de eleitores é 100;
  • Se houver empate duplo ou triplo deverá haver uma reeleição entre os empatados e;
  • se os votos nulos forem maior que os dos candidatos a eleição será anulada.

Poderá utilizar somente o o sistema for e if (não pode importar bibliotecas)

Meu código deu 98 linhas. Não consigo pensar em uma maneira mais eficiente de se fazer, alguém poderia me mostrar?

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner tecla = new Scanner(System.in);

int cont = 0, cont2 = 0, cont3 = 0, votos, contNulo = 0;
for (int aux = 0; aux <= 100; aux++) {
		System.out.println("\ninforme o número do candidato, sendo 1 = Fulano, 2 = Ciclano e 3 = Beltrano:  ");
		votos = tecla.nextInt();

		if (votos == 1)
			cont++;
		else if (votos == 2)
			cont2++;
		else if (votos == 3)
			cont3++;
		else
			contNulo++;
	}
	System.out
			.println("\nVotos = Fulano:" + cont + " Ciclano:" + cont2 + " Beltrano:" + cont3 + " Nulo:" + contNulo);
	if (contNulo > cont3 && contNulo > cont2 && contNulo > cont)
		System.out.println(
				"\nInfelizmente o número de votos nulos superou o número de votos nos candidatos, sendo assim não haverá uma eleição e nem uma possibilidade de reileção");
	if (cont == cont2 && cont > cont3 && cont > contNulo) {
		cont = 0;
		cont2 = 0;
		System.out.println("\nHaverá uma reeleição: entre os candidatos Fulano e Ciclano");
		for (int aux = 0; aux <= 100; aux++) {
			System.out.println("\nOs números serão os mesmos para os candidatos. Vote: 1 ou 2 ");
			votos = tecla.nextInt();
			if (votos == 1)
				cont++;
			else if (votos == 2)
				cont2++;
			else
				contNulo++;
		}
		System.out.println("\nVotos = Fulano:" + cont + " Ciclano:" + cont2);
	}
	if (cont == cont3 && cont > cont2 && cont > contNulo) {
		cont = 0;
		cont3 = 0;
		System.out.println("\nHaverá uma reeleição: entre os candidatos Fulano e Beltrano");
		for (int aux = 0; aux <= 100; aux++) {
			System.out.println("\nOs números serão os mesmos para os candidatos.\n Vote: 1 ou 3 ");
			votos = tecla.nextInt();
			if (votos == 1)
				cont++;
			else if (votos == 3)
				cont3++;
			else
				contNulo++;
		}
		System.out.println("\nVotos = Fulano:" + cont + "Beltrano:" + cont3 + " Nulos:" + contNulo);
	}
	if (cont2 == cont3 && cont2 > cont && cont2 > contNulo) {
		System.out.println("\nHaverá uma reeleição: entre os candidatos Ciclano e Beltrano");
		cont2 = 0;
		cont3 = 0;
		for (int aux = 0; aux <= 100; aux++) {
			System.out.println("\nOs números serão os mesmos para os candidatos.\n Vote: 2 ou 3 ");
			votos = tecla.nextInt();
			if (votos == 2)
				cont++;
			else if (votos == 3)
				cont3++;
			else
				contNulo++;
		}
		System.out.println("\nVotos = Ciclano:" + cont + "Beltrano:" + cont3 + " Nulos:" + contNulo);
	}
	if (cont == cont3 && cont == cont2 && cont > contNulo) {
		System.out.println("\nHaverá uma reeleição: entre os candidatos Fulano, Beltrano e Ciclano");
		cont = 0;
		cont2 = 0;
		cont3 = 0;
		for (int aux = 0; aux <= 100; aux++) {
			System.out.println("\nOs números serão os mesmos para os candidatos. Vote: 1, 2 ou 3 ");
			votos = tecla.nextInt();
			if (votos == 1)
				cont++;
			else if (votos == 3)
				cont3++;
			else if (votos == 2)
				cont2++;
			else
				contNulo++;
		}
		System.out.println(
				"\nVotos = Fulano:" + cont + " Ciclano:" + cont2 + "Beltrano:" + cont3 + " Nulos:" + contNulo);
	}
	tecla.close();
}

}

1 Resposta

SkyG0D

Poste o código para darmos uma olhada.

Criado 23 de abril de 2020
Ultima resposta 23 de abr. de 2020
Respostas 1
Participantes 2