Java - Ayuda a detectar un error

 
Vista:

Ayuda a detectar un error

Publicado por Gabriela (5 intervenciones) el 23/09/2018 01:45:30
Hola, buenas tardes a todos!!.
Tengo un problema en un ejercicio que estoy realizando, no puedo detectar el error o que debo modificar para que me haga bien el calculo de promedio.

El problema es el siguente:
Realizar la carga de Alturas de personas hasta que se digite el valor 999. Imprimir lo siguiente:

• Cuántas fueron Bajas (altura menor a 1,60m). • Cuántas fueron Normales (altura entre 1,60 y 1,80m, ambos inclusive). • Cuántas fueron Altas (Altura mayor a 1,80m). • Promedio general de todas las personas.

Me podrian indicar dentro de este desarrollo ya que estamos recien viendo la sentencia While cual es el problema de que no me calcula el promedio. Desde ya muy agradecida.


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
// The "Ejercicio2" class.
import java.awt.*;
import hsa.Console;
 
public class Ejercicio2
{
    static Console c;           // The output console
 
    public static void main (String[] args)
    {
 
        float a, bajas, normales, altas, promedio, cantidad;
        c = new Console ();
        bajas = normales = altas = promedio = cantidad = 0f;
 
        c.print ("Ingrese la estatura y digite 999 para terminar:");
        a = c.readFloat ();
 
        while (a != 999)
        {
            cantidad++;
            if (a < 1.6)
                bajas++;
            if (a >= 1.6 && a <= 1.8)
                normales++;
            if (a > 1.8)
                altas++;
            c.print ("Ingrese la estatura y digite 999 para terminar:");
            a = c.readFloat ();
        }
        c.println ();
        if (cantidad > 0)
        {
            promedio = a / cantidad;
            c.println ();
            c.println ("Cantidad de Personas Bajas: " + bajas);
            c.println ("Cantidad de Personas Normales: " + normales);
            c.println ("Cantidad de Personas Altas: " + altas);
            c.println ("El promedio de las estaturas es: " + promedio);
 
        }
        // Place your program here.  'c' is the output console
    } // main method
} // Ejercicio2 class
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
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

Ayuda a detectar un error

Publicado por Kabuto (1381 intervenciones) el 23/09/2018 12:10:08
Hola.
Tu error está aquí:
1
promedio = a / cantidad;

Para calcular el promedio, necesitas tener la suma acumulada de TODAS las estaturas que se han introducido.
Pero en la variable a, tu no tienes eso, ahí lo que tienes es el valor de la ULTIMA altura introducida, que además SIEMPRE es 999 porque es lo último que ha tecleado el usuario.

Necesitas usar otra variable más. Una variable que vaya sumando cada altura introducida para luego dividir por la cantidad de alturas introducidas y ahora sí, obtener el promedio.

Intenta hacerlo tú, y si no lo consigues, luego te digo como hacerlo.
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

Ayuda a detectar un error

Publicado por Gabriela (5 intervenciones) el 23/09/2018 14:56:41
Hola, muchas gracias por contestarme, te pregunto porque me cuesta resolverlo. Pensaba si se puede poner asi:
promedio =(bajas+normales+altas) /cantidad; pero me parece que no es solución porque me da siempre el mismo resultado: 1.0. Desde ya muchas gracias por toda la ayuda.
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

Ayuda a detectar un error

Publicado por Gabriela (5 intervenciones) el 23/09/2018 15:17:23
Muchisimas Gracias! , aplique tu indicación y me resulto. Mil gracias! Quedo 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
// The "Ejercicio2" class.
import java.awt.*;
import hsa.Console;
 
public class Ejercicio2
{
    static Console c;           // The output console
 
    public static void main (String[] args)
    {
 
        float a, altura, bajas, normales, altas, promedio, cantidad;
        c = new Console ();
        bajas = a = normales = altas = promedio = cantidad = 0f;
 
        c.print ("Ingrese la estatura y digite 999 para terminar:");
        altura = c.readFloat ();
 
        while (altura != 999)
        {
            cantidad++;
            if (altura < 1.6)
                bajas++;
            if (altura >= 1.6 && a <= 1.8)
                normales++;
            if (altura > 1.8)
                altas++;
            a=a+altura;
            c.print ("Ingrese la estatura y digite 999 para terminar:");
            altura = c.readFloat ();
        }
        c.println ();
        if (cantidad > 0)
        {
            promedio =a/cantidad;
            c.println ();
            c.println ("Cantidad de Personas Bajas: " + bajas);
            c.println ("Cantidad de Personas Normales: " + normales);
            c.println ("Cantidad de Personas Altas: " + altas);
            c.println ("El promedio de las estaturas es: " + promedio);
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