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();
}
}