ayuda !!

Iniciado por lizn22, 19 Abril 2019, 02:23 AM

0 Miembros y 1 Visitante están viendo este tema.

lizn22

Hola chicos soy nueva en este sitio, estoy intentando hacer este ejercicio en Java nose como hacer sin usar vectores si alguien se le ocurre una idea agradezco :)


//Escribir un programa que ingrese un número entero positivo N y luego N números
//enteros e imprima la suma de los números leídos comprendidos entre el mayor de
//los N números leidos y el menor de los N números leidos(sin el uso de vectores).
//Ej.1: 4 1 3 8 2 7 9 -----> debe imprimir 20 pues 3+8+2+7 = 20

srWhiteSkull

No entiendo el ejercicio, de que forma obtiene la suma, pero igualmente sólo necesitas un array para guardar los valores, un array de dimensión N, por lo que tendrás que definir el tamaño después de conocerlo. Luego usas un bucle N y vas metiendo los valores... luego está sacar el resultado, que yo por lo menos no entiendo eso de "e imprima la suma de los números leídos comprendidos entre el mayor de los N números leidos y el menor de los N números leidos".

PD el mayor es 9 y el menor 1 por lo que 4 debería entrar en la suma y en cambio sólo suma 3+8+2+7 ¿?

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

CalgaryCorpus

#2
Nota que el enunciado dice:  "Ej 1", existen otros ejemplos?

Para que calce con el ejemplo. creo que se puede resolver llevando varias variables que mantenga la suma hasta ese momento.

Si vas llevando la suma hasta ese momento en una variable suma, esa variable tendra estos valores a medida que van apareciendo, sin necesidad de guardar todos los numeros en un arreglo o vector.

4, suma = 4
1, suma = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el menor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el mayor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4, mayor = 4, sumamayor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16, ... mayor = 8, sumamayor = 16
2, suma = 18
7, suma = 25
9, suma = 34, ... mayor = 9, sumamayor = 34

al final tendras
menor = 1, sumamenor = 5, mayor = 9, sumamayor = 34

sumamayor - sumamenor - mayor = 34 - 5 - 9  = 20

ahora, si lo que primero aparece es el numero mayor,
lo que habria que hacer es:

sumamenor - sumamayor - menor

Aqui mi perfil en LinkedIn, invitame un cafe aqui

lizn22

5)Escribir un programa que ingrese un número entero positivo N y luego N números
enteros e imprima la suma de los números leídos comprendidos entre el mayor de
los N números leidos y el menor de los N números leidos(sin el uso de vectores).
Ej.1: 4 1 3 8 2 7 9 -----> debe imprimir 20 pues 3+8+2+7 = 20


Ej.1: 4 1 3 8 2 7 -----> debe imprimir 3 pues es el único valor entre
el mayor 8 y el menor 1

primero ingresas un numero positivo y luego N números el 9 es mayor  el 1 es menor hacer la suma entre el esos intervalos sin contar al menor y al mayor

srWhiteSkull

Cita de: CalgaryCorpus en 19 Abril 2019, 04:51 AM
Nota que el enunciado dice:  "Ej 1", existen otros ejemplos?

Para que calce con el ejemplo. creo que se puede resolver llevando varias variables que mantenga la suma hasta ese momento.

Si vas llevando la suma hasta ese momento en una variable suma, esa variable tendra estos valores a medida que van apareciendo, sin necesidad de guardar todos los numeros en un arreglo o vector.

4, suma = 4
1, suma = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el menor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el mayor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4, mayor = 4, sumamayor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16, ... mayor = 8, sumamayor = 16
2, suma = 18
7, suma = 25
9, suma = 34, ... mayor = 9, sumamayor = 34

al final tendras
menor = 1, sumamenor = 5, mayor = 9, sumamayor = 34

sumamayor - sumamenor - mayor = 34 - 5 - 9  = 20

ahora, si lo que primero aparece es el numero mayor,
lo que habria que hacer es:

sumamenor - sumamayor - menor

cierto se podría prescindir de un contenedor para los números y realizar la operación sobre la marcha, y con respecto al resultado JODER!! eso parece cábala  :xD

yuimugi912

si pero tendrias que guardar el numero 4 1 3 8 2 7 9 en una variable e ir tomando caracter a caracter , por eso de no usar vectores

CalgaryCorpus

Los numeros se ingresan por separado de acuerdo al enunciado.
Aqui mi perfil en LinkedIn, invitame un cafe aqui