SoloCodigo
Programación General => Java => Mensaje iniciado por: digichap28 en Sábado 27 de Octubre de 2007, 01:52
-
Hola que tal como estan?
Bueno aqui esta lo que tengo que hacer.
Hacer un programa que dado 80 votos diga cual de los 3 candidatos es vencedor, no debe existir un empate.
AQUI ESTA LO QUE EH HECHO:
import javax.swing.*;
public class elecciones {
public static void main (String[]args) {
int can,k,contd,conta,contc,contanu;
contd=0; conta=0; contc=0; contanu=0;
for(k=1;k<=80;k++){
can=Integer.parseInt(JOptionPane.showInputDialog("Digite un numero segun su candidato: \n " + " 1:Diego 2:Andres 3:Carlos "));
if (can== 1){
contd=contd+1;
}
if (can== 2){
conta=conta+1;
}
if (can==3) {
contc=contc+1;
} else{
contanu=contanu+1;
}
}
if ((contd>conta) && (contd>contc)) {
JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
}
if ((conta>contd)&&(conta>contc)){
JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
}
if ((contc>contd)&& (contc>conta)) {
JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
}
}
}
Hasta ahi solo sale quien es el vencedor de los tres candidatos, pero si llegase a existir un empate, ejemplo: candidato1 = 30 votos candidato2 = 30 votos candidato3 = 20 votos , que podria hacer si eso llegase a pasar?? una segunda vuelta??? Que diga que hubo un empate en el primer lugar?? o que puede ser??
La verdad no se, y tampoco como escribirlo.
Otra cosa, me pueden ayudar a optimizarlo si se puede?? GRACIAS
-
Hola de nuevo, miren eh hecho algunos cambios al codigo pero ahora tengo otra inquietud mas, por que no se hace ninguno de los procesos de por (porcentajes)??? ayudenme please
import javax.swing.*;
public class elecciones {
public static void main (String[]args) {
int can,k,n,contd,conta,contc,contanu,contbla,porD,porA,porC,porBLA,porANU,Vvc;
contd=0; conta=0; contc=0; contbla=0; contanu=0;
n=10;
//ELECCION Y CONTEO DE VOTOS
for(k=1;k<=n;k++){
can=Integer.parseInt(JOptionPane.showInputDialog
("Digite el numero correspondiente segun su candidato: \n \n " + " " + "1--Diego\n " + " " + "2--Andres\n " + " " + "3--Carlos\n " + " " + "4--Voto en blanco\n "));
switch(can) {
case 1:contd=contd+1;
break;
case 2:conta=conta+1;
break;
case 3:contc=contc+1;
break;
case 4:contbla=contbla+1;
break;
default: contanu=contanu+1;
break;
}
}
if ((contd>conta) && (contd>contc)) {
JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
}
if ((conta>contd)&&(conta>contc)){
JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
}
if ((contc>contd)&& (contc>conta)) {
JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
}
//PORCENTAJES VOTACIONES
porD=(contd/n)*100;
porA=(conta/n)*100;
porC=(contc/n)*100;
porBLA=(contbla/n)*100;
porANU=(contanu/n)*100;
//
Vvc=contd+conta+contc;
JOptionPane.showMessageDialog(null," **ESTADISTICAS**\n \n"+ " -Porcentajes- \n"+ "Diego = " + porD+"%" +"\n"+ "Andres = "+ porA+"%" +"\n"+ "Carlos = "+ porC+"%" +"\n"+ "Votos en blanco = "+ porBLA+"%" +"\n"+ "Votos anulados = "+ porANU+"%" +"\n \n"+ " -Cantidad votos-\n"+ "Votos validos candidatos = "+ Vvc +"\n"+"Votos en blanco = " +contbla +"\n"+ "Votos anulados = " + contanu +"\n"+ "Total = "+ n );
}
}
-
NADIE PUEDE AYUDARME?? :huh: :(
-
import javax.swing.*;
public class elecciones {
public static void main (String[]args) {
int can,k,n,contd,conta,contc,contanu,contbla,Vvc;
float porD = 0;
float porA = 0;
float porC = 0;
float porBLA = 0;
float porANU = 0;
contd=0; conta=0; contc=0; contbla=0; contanu=0;
n=10;
//ELECCION Y CONTEO DE VOTOS
for(k=1;k<=n;k++){
can=Integer.parseInt(JOptionPane.showInputDialog
("Digite el numero correspondiente segun su candidato: \n \n " + " " + "1--Diego\n " + " " + "2--Andres\n " + " " + "3--Carlos\n " + " " + "4--Voto en blanco\n "));
switch(can) {
case 1:contd=contd+1;
break;
case 2:conta=conta+1;
break;
case 3:contc=contc+1;
break;
case 4:contbla=contbla+1;
break;
default: contanu=contanu+1;
break;
}
}
if ((contd>conta) && (contd>contc)) {
JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
}
else if ((conta>contd)&&(conta>contc)){
JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
}
else if ((contc>contd)&& (contc>conta)) {
JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
}
//PORCENTAJES VOTACIONES
porD= ((float)contd/n) * 100;
porA=((float)conta/n) * 100;
porC=((float)contc/n) * 100;
porBLA=((float)contbla/n) * 100;
porANU=((float)contanu/n) * 100;
//
Vvc=contd+conta+contc;
JOptionPane.showMessageDialog(null," **ESTADISTICAS**\n \n"+ " -Porcentajes- \n"+ "Diego = " + (int)porD+"%" +"\n"+ "Andres = "+ (int)porA+"%" +"\n"+ "Carlos = "+ (int)porC+"%" +"\n"+ "Votos en blanco = "+ (int)porBLA+"%" +"\n"+ "Votos anulados = "+ (int)porANU+"%" +"\n \n"+ " -Cantidad votos-\n"+ "Votos validos candidatos = "+ Vvc +"\n"+"Votos en blanco = " +contbla +"\n"+ "Votos anulados = " + contanu +"\n"+ "Total = "+ n );
}
}
esta es una forma de resolver los porcentajes.... si quieres resolver lo de los empates puedes poner una bandes y repeter el ciclo hasta que haya un ganador
-
Hola que tal?
MUCHAS GRACIAS MANIX!! :hola:
Otra cosa, por que no dejaba como lo tenia?
GRACIAS
-
porque al hacer la division cont/n inmediantamente el resultado era redondiado a 0 en ves de ser 0.2 y cualquier otro decimal, entonces cuando lo multiplicabas por 100 estabas multiplicando 0 * 100 y por eso siempre te daba 0
Pero cuando sobreponemos el float toma ese decimal y lo multiplica por 100
:lol: :lol: :lol:
-
Nuevamente gracias!!! :hola: