Java - ayuda porfa

 
Vista:
sin imagen de perfil

ayuda porfa

Publicado por Jheferson (1 intervención) el 11/08/2022 04:30:43
hola, necesito ayuda con este programa que tiene un error y me falta agregar unas cosas, no soy muy bueno en java y tenia mas errores al inicio pero hice lo que pude por mi cuenta xD.


programa en Java que emplee vectores para almacenar edades bajo las siguientes condiciones:


En la sección nunca hay menos de 3 ni más de 50 edades
Las edades deben estar entre 15 y 65 años.

El programa deberá mostrar lo siguiente:

El Vector Original ingresado
El vector ordenado de manera ascendente (de menor a mayor edad)
El vector ordenado descendentemente (de mayor a menor)
El promedio de edad
La edad más baja y la más alta


Me falta la parte de sacar el promedio de las edades ingresaras

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
package com.mycompany.edades;
 
import java.util.Scanner;
 
 
 
public class Edades {
 
    public static void main(String[] args){
 
Scanner leer = new Scanner(System.in);
 
 
System.out.print("Introduzca el total de edades que desea ingresar: ");
int totEdad = leer.nextInt();
 
int[] edad = new int[totEdad];
 
 
System.out.println("Introduzca " + totEdad + " Edades: ");
for(int i = 0; i < edad.length; i++){
System.out.print("Numero " + (i+1) + ": ");
edad[i] = leer.nextInt();
}
//Vector original
System.out.println("\nLas edades SIN ORDENAR son: ");
for(int i = 0; 1 < edad.length; i++){
System.out.println(edad[i]);
}
 
 
 
//mostrar si es ascendente y descendente
Arrays.sort(edad);
System.out.println("\nLos numeros ingresados ordenados ASCENDENTEMENTE son: ");
for(int i = 0; i < edad.length; i++){
System.out.println(edad[i]);
}
 
System.out.println("\nLos numeros ingresados ordenados  DESCENDENTEMENTE son: ");
for(int i =edad.length-1; i>=0; i--){
System.out.println(edad[i]);
}
 
//mostrar cual edad es mayor y menor
int mayor, menor;
 
        mayor = menor = edad[i];
 
        for (int i = 0; i < edad.length; i++) {
            if(edad [i] > mayor) {
                mayor = edad[i];
            }
            if(edad[i]<menor) {
                menor = edad[i];
            }
        }
        System.out.println("La edad Mayor es: "+mayor);
        System.out.println("La edad Menor es: "+menor);
 
        {
 
}}}
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 porfa

Publicado por Kabuto (1381 intervenciones) el 11/08/2022 12:19:04
Aquí supongo que querías inicializar las variables mayor y menor con el primer elemento del array
1
2
3
4
//mostrar cual edad es mayor y menor
int mayor, menor;
 
        mayor = menor = edad[i];


En ese caso, has de usar directamente el valor 0,
1
2
3
4
//mostrar cual edad es mayor y menor
int mayor, menor;
 
        mayor = menor = edad[0];


Ya que en ese momento del programa no tienes ninguna variable i que sea visible.
Todas tus variables i, solo existen dentro de los bucles FOR, esos son sus ámbitos. Fuera de los bucles FOR no existen (suele ser lo mejor en ejercicios como estos)


Sobre calcular el promedio.
Pues has de recorrer el array de edades y sumarlas todas en una misma variable.
Cuando tengas la suma, la divides entre la cantidad de edades que contiene el array. Ese valor lo tienes en la variable totEdad, o también puedes pedírsela al array con edad.length

Prueba y nos cuentas.
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
Imágen de perfil de Jose

ayuda porfa

Publicado por Jose (4 intervenciones) el 13/08/2022 00:01:26
Hola amigo (esta es mi cuenta principal, se me había olvidado la contraseña xD), pues lo he intentado y aun no lo he logrado, le agregue la biblioteca de Arrays (me faltaba declararla para usar el sort).
he probado cada parte del programa individualmente y funcionan correctamente, pero cuando los pongo todos en conjunto solo llega hasta mostrar el array original y sale el siguiente error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4

ya termine también lo de sacar el promedio

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
66
67
68
69
70
71
72
73
74
75
package com.mycompany.edades;
 
import java.util.Scanner;
import java.util.Arrays;
 
 
public class Edades {
 
     public static void main(String[] args){
 
Scanner leer = new Scanner(System.in);
 
 
System.out.print("Introduzca el total de edades que desea ingresar: ");
int totEdad = leer.nextInt();
 
 
int edad[] = new int [totEdad];
 
 
System.out.println("Introduzca " + totEdad + " Edades: ");
for(int i = 0; i < edad.length; i++){
System.out.print("Edad " + (i+1) + ": ");
edad[i] = leer.nextInt();
}
//Vector original
System.out.println("\nLas edades SIN ORDENAR son: ");
for(int i = 0; 1 < edad.length; i++){
System.out.println(edad[i]);
}
 
 
//mostrar si es ascendente y descendente
 
Arrays.sort(edad);
System.out.println("\nLos numeros ingresados ordenados ASCENDENTEMENTE son: ");
for(int i = 0; i < edad.length; i++){
System.out.println(edad[i]);
}
 
Arrays.sort(edad);
System.out.println("\nLos numeros ingresados ordenados  DESCENDENTEMENTE son: ");
for(int i =edad.length-1; i>=0; i--){
System.out.println(edad[i]);
}
 
//mostrar cual digito es mayor y menor
int mayor, menor;
 
        mayor = menor = edad[0];
 
        for (int i = 0; i < edad.length; i++) {
            if(edad [i] > mayor) {
                mayor = edad[i];
            }
            if(edad[i]<menor) {
                menor = edad[i];
            }
        }
        System.out.println("La edad Mayor es: "+mayor);
        System.out.println("La edad Menor es: "+menor);
 
//promedio
 
int total = 0;
double promedio = 0;
 
for (int i = 0; i < edad.length; i++) {
            total += edad[i];
        }
     promedio= total/totEdad;
 
System.out.println("El promedio 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
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

ayuda porfa

Publicado por Kabuto (1381 intervenciones) el 13/08/2022 10:06:50
Se debe a un pequeño error, que aunque pequeño, suficiente para que todo falle.

Cuando muestras el vector sin ordenar, en la condición del bucle FOR has puesto el valor 1:
1
2
3
4
5
		//Vector original
		System.out.println("\nLas edades SIN ORDENAR son: ");
		for(int i = 0; 1 < edad.length; i++){
			System.out.println(edad[i]);
		}

Cuando en realidad querías poner la i:
1
2
3
4
5
		//Vector original
		System.out.println("\nLas edades SIN ORDENAR son: ");
		for(int i = 0; i < edad.length; i++){
			System.out.println(edad[i]);
		}


Corrigiendo eso, parece que ya todo funciona bien
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