Java - Problemas con promedio Ejercicio Candidatos

 
Vista:
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Dany (16 intervenciones) el 24/10/2017 07:01:10
Buenas que tal a todos,

Tengo este ejercicio en JAVA Netbens en el cual tengo problemas para sacar el porcentaje a cada candidato:
Este es el ejercicio:
Encontrar, mediante un programa, el número de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El usuario tecleara los votos de manera desorganizada, tal que como se obtuvieron en la elección, el final de datos está representado por un cero.

Tengo todo el programa hecho pero no me queda lo del porcentaje obtenido por cada candidato, este el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package exaciclo;
import java.util.Scanner;
/**
 *
 * @author Dany
 */
public class Candidatos {
    public static void main(String[] args) {
 
        int Voto=1,Cont1=0, Cont2=0, Cont3=0,Cont4=0, Opc=1, Suma=0, C1=0, C2=0, C3=0, C4=0;
 
        Scanner sc =new Scanner(System.in);
        System.out.println("Ingrese un numero entero positivo:");
        //No=sc.nextInt();
 
        System.out.println("CANDIDATOS");
        System.out.println("1.- Candidato 1");
        System.out.println("2.- Candidato 2");
        System.out.println("3.- Candidato 3");
        System.out.println("4.- Candidato 4");
        System.out.println("Seleccione candidato...!");
        while(Opc!=0){
 
        Opc=sc.nextInt();
 
        switch(Opc){
            case 1:
                Cont1++;
 
                break;
 
            case 2:
                Cont2++;
                break;
 
            case 3:
                Cont3++;
                break;
 
            case 4:
                Cont4++;
                break;
 
        }
        }
        Suma = Cont1 + Cont2 + Cont3 + Cont4;
 
 
        C1 = Suma/Cont1*10;
        C2 = Suma/Cont2*10;
        C3 = Suma/Cont3*10;
        C4 = Suma/Cont4*10;
 
 
 
 
        System.out.println("Total de votos contabilizados: "+Suma);
        System.out.println("El Candidato 1 obtuvo el : "+C1+"% con "+Cont1+" votos.");
        System.out.println("El Candidato 2 obtuvo el : "+C2+"% con "+Cont2+" votos.");
        System.out.println("El Candidato 3 obtuvo el : "+C3+"% con "+Cont3+" votos.");
        System.out.println("El Candidato 4 obtuvo el : "+C4+"% con "+Cont4+" votos.");
 
    }
 
}

Con ese codigo obtengo mas del 100% de los votos, espero me puedan ayudar....!

Saludos.

DS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Problemas con promedio Ejercicio Candidatos

Publicado por Roger (3 intervenciones) el 24/10/2017 07:09:33
Amigo, creo que está mal la lógica que tiene su ejercicio. Hazlo de forma más organizada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Dany (16 intervenciones) el 24/10/2017 15:08:32
Hola, a que te refieres con hacerlo de forma mas organizada?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Sebastian (91 intervenciones) el 24/10/2017 16:55:31
La operación creo que esta mal, ya que pues lo que estas buscando es el porcentaje de los votos de cada candidato.
Entonces la suma total de los votos equivale al 100% y los votos de cada candidato, cuanto porcentaje equivale??

Es una regla de 3 sencilla, donde va la cantidad de votos de cada candidato por 100, dividido en la suma total de candidatos

tu error esta más en el razonamiento matemático

1
2
3
4
5
.
        C1 = (Cont1*100)/Suma;
        C2 = (Cont2*100)/Suma;
        C3 = (Cont3*100)/Suma;
        C4 = (Cont4*100)/Suma;

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Dany (16 intervenciones) el 24/10/2017 22:01:07
Es correcto lo que me comentas asi es como deberia de quedar la operacion pero me arroja 0 e todos los candidatos:

Modifique las variables a flotante:
float C1=0, C2=0, C3=0, C4=0;

1
2
3
4
5
6
7
Suma = Cont1 + Cont2 + Cont3 + Cont4;
 
 
        C1 = Cont1/Suma*100;
        C2 = Cont2/Suma*100;
        C3 = Cont3/Suma*100;
        C4 = Cont4/Suma*100;

Total de votos contabilizados: 15
El Candidato 1 obtuvo el : 0.0% con 8 votos.
El Candidato 2 obtuvo el : 0.0% con 3 votos.
El Candidato 3 obtuvo el : 0.0% con 2 votos.
El Candidato 4 obtuvo el : 0.0% con 2 votos.

Cual es mi error?

Saludos

DS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Sebastian (91 intervenciones) el 25/10/2017 03:38:13
Mmmmm a mi me funciona

750fa76a7ee971f212541cc514e6d594o
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Dany (16 intervenciones) el 25/10/2017 17:44:16
Ajuste el codigo y reduci las variables eliminando estas C1,C2,C3 y C4.

Y ejecute la operación dentro del SOUT ademas las Variables Suma y Cont1.... las cambie a float quedando el codigo funcionalmente asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import java.util.Scanner;
 
/**
 *
 * @author Dany
 */
public class Candidatos {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
        int Opc=1;
        float Suma=0,Cont1=0, Cont2=0, Cont3=0,Cont4=0;
 
        Scanner sc =new Scanner(System.in);
        System.out.println("Ingrese un numero entero positivo:");
        //No=sc.nextInt();
 
        System.out.println("CANDIDATOS");
        System.out.println("1.- Candidato 1");
        System.out.println("2.- Candidato 2");
        System.out.println("3.- Candidato 3");
        System.out.println("4.- Candidato 4");
        System.out.println("Seleccione candidato...!");
        while(Opc!=0){
 
        Opc=sc.nextInt();
 
        switch(Opc){
            case 1:
                Cont1++;
                break;
 
            case 2:
                Cont2++;
                break;
 
            case 3:
                Cont3++;
                break;
 
            case 4:
                Cont4++;
                break;
 
        }
        }
        Suma = Cont1 + Cont2 + Cont3 + Cont4;
 
        System.out.println("Total de votos contabilizados: "+Suma);
        System.out.println("El Candidato 1 obtuvo el : "+Cont1/Suma*100+"% con "+Cont1+" votos.");
        System.out.println("El Candidato 2 obtuvo el : "+Cont2/Suma*100+"% con "+Cont2+" votos.");
        System.out.println("El Candidato 3 obtuvo el : "+Cont3/Suma*100+"% con "+Cont3+" votos.");
        System.out.println("El Candidato 4 obtuvo el : "+Cont4/Suma*100+"% con "+Cont4+" votos.");
    }
 
}

1
1
1
1
2
3
4
2
3
1
2
3
4
2
1
1
1
0
Total de votos contabilizados: 17.0
El Candidato 1 obtuvo el : 47.058823% con 8.0 votos.
El Candidato 2 obtuvo el : 23.529411% con 4.0 votos.
El Candidato 3 obtuvo el : 17.647058% con 3.0 votos.
El Candidato 4 obtuvo el : 11.764706% con 2.0 votos.

Ya solo voy a reducir los decimales y seria todo muchas gracias por la ayuda, pueden cerrar el hilo.

NOTA: Donde puedo encontrar ejercicios similares a este con usos de ciclos (For, While y Do While) estoy viendo este tema posteriormente vere lo que son arreglos.

He visto muchos ejercicios con ciclos, (numeros pares, impares, primos, suma) pero no he visto demasiados ejercicios como este con el uso de ciclos y operaciones.

Si pudiesen proporcionarme una liga se los agradeceria, de antemano gracias y muy agradecido.

Saludos

DS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con promedio Ejercicio Candidatos

Publicado por daniel flores (1 intervención) el 04/09/2021 06:51:07
Como acortas las decimales
??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas con promedio Ejercicio Candidatos

Publicado por Kabuto (1381 intervenciones) el 04/09/2021 13:36:54
Hola Daniel.

Si solo quieres acortarlo para que se vea mejor formateado en pantalla, sin alterar el valor original, puedes usar printf()

Ejemplo:
1
2
3
4
5
public static void main(String[] args) {
        double valor = 45.8899999999999;
        System.out.println("Valor completo: " + valor);
        System.out.printf("Valor redondeado: %.2f", valor);
    }

En pantalla da este resultado:
1
2
Valor completo: 45.8899999999999
Valor redondeado: 45.89

Tienes más explicaciones y ejemplos en este enlace.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar