Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con array, crear dos arrays a partir de uno

Estas en el tema de Problema con array, crear dos arrays a partir de uno en el foro de Java en Foros del Web. Hola, Tengo un problema escolar donde me piden crear un array de x tamaño con valores entre 0 y 999. El usuario ingresa el tamaño ...
  #1 (permalink)  
Antiguo 22/09/2011, 04:32
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 4 meses
Puntos: 2
Problema con array, crear dos arrays a partir de uno

Hola,
Tengo un problema escolar donde me piden crear un array de x tamaño con valores entre 0 y 999. El usuario ingresa el tamaño del array y los valores se generan randomicamente.
Una vez el array esta construido, se muestran los valores y se debe crear un array con los valores menores de 500 y otro con lo mayores.
Hasta ahora he creado el array dependiendo del tamaño que el usuario quiere y colocar los valores creados randomicamente. También he logrado crear los otros dos arrays dependiendo de cuantos valores menores y mayores a 500 hay en el primer array, pero no logro encontrar un algoritmo para pasar los valores a los respectivos array.

Asi es como se ve mi código hasta ahora:

Código PHP:
import java.util.Scanner;

public class 
Tal {

    public static 
void main(String args[]) {
        
int talrandomNumber;
        
int less 0higher 0;


        
Scanner input = new Scanner(System.in);
        
        
System.out.print("Cuantos valores al azar entre 0 - 999 deseas? ");
        
tal input.nextInt();
        
System.out.println();

        
//Crea el array dependiendo del valor ingresado por el usuario
        
int[] numbers = new int[tal];

        
//Ingresando valores randomicos entre 0 - 999 al array
        
for (int i 0numbers.lengthi++) {
            
randomNumber + (int) (Math.random() * ((999 0) + 1));

            
numbers[i] = randomNumber;

        }

        
// imprimiendo los valores del array y conatbilizando cantidad de 
        // valores mayores o menores que 500
        
for (int i 0numbers.lengthi++) {
            
System.out.println("Valor " " : " numbers[i]);

            if (
numbers[i] < 500) {
                
less++; //less sera el tamaño del nuevo array
            
} else {
                
higher++; //higher sera el tamaño del nuevo array
            
}
        }

        
//Creando los arrays con los valores obtenidos
        
int[] lessThan = new int[less];
        
int[] higherThan = new int[higher];

        
//Comprobando que los array se han creado con el tamaño correcto
        
System.out.println(lessThan.length " valor");
        
System.out.println(higherThan.length " valor");
        
    }

Lo que me da:

Cita:
run:
Cuantos valores al azar entre 0 - 999 deseas? 8

Valor 0 : 4
Valor 1 : 589
Valor 2 : 966
Valor 3 : 534
Valor 4 : 361
Valor 5 : 837
Valor 6 : 362
Valor 7 : 430
4 valores.
4 valores.
BUILD SUCCESSFUL (total time: 3 seconds)
Como paso los valores a los array lessThan y higherThan?

Intente con esto pero no sirve ya que los arrays se llenan con el ultimo valor encontrado:

Código PHP:
for (int i 0numbers.lengthi++) {
            if (
numbers[i] < 500) {
                for (
int l 0lessThan.lengthl++) {
                    
lessThan[l] = numbers[i];
                }
            } else {
                for (
int m 0higherThan.lengthm++) {
                    
higherThan[m] = numbers[i];
                }
            }
        } 
Alguna idea que me pueda ayudar a solucionar esto seria de gran ayuda.
Una cosa mas, todo se tiene que hacer de forma manual, es decir ningúna función o método se puede usar excepto por el Math.random.
  #2 (permalink)  
Antiguo 22/09/2011, 05:06
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 12 años, 10 meses
Puntos: 344
Respuesta: Problema con array, crear dos arrays a partir de uno

Algo así debería funcionar.

Código Java:
Ver original
  1. int l=0, m=0;
  2. for (int i = 0; i < numbers.length; i++) {
  3.             if (numbers[i] < 500) {                
  4.                     lessThan[l++] = numbers[i];                                  
  5.             } else {              
  6.                     higherThan[m++] = numbers[i];                    
  7.              }            
  8.         }
  #3 (permalink)  
Antiguo 22/09/2011, 06:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Problema con array, crear dos arrays a partir de uno

Sí, el problema es que no era necesario hacer los bucles internos, que son los que recorrian los subarrays y los llenaban con el valor encontrado.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #4 (permalink)  
Antiguo 22/09/2011, 10:42
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 4 meses
Puntos: 2
Respuesta: Problema con array, crear dos arrays a partir de uno

Gracias por la aclaracion.

Estaba convencido que debía recorrer los sub-arrays para colocar los valores.

Gracias por todo

Etiquetas: arrays
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:50.