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

[SOLUCIONADO] Copiar de un vector a otro solo números pares

Estas en el tema de Copiar de un vector a otro solo números pares en el foro de Java en Foros del Web. Estoy haciendo un programa que copie los números pares de un vector a otro nuevo que contenga solo los valores pares del primero. El problema ...
  #1 (permalink)  
Antiguo 13/01/2014, 09:25
 
Fecha de Ingreso: diciembre-2013
Mensajes: 36
Antigüedad: 10 años, 4 meses
Puntos: 1
Pregunta Copiar de un vector a otro solo números pares

Estoy haciendo un programa que copie los números pares de un vector a otro nuevo que contenga solo los valores pares del primero. El problema es que solo me copia el último valor parque encuentra.

Código:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package numparvecsolopar;

import java.util.*;

/**
 *
 * @author Joan
 */
public class NumParVecSoloPar {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        int [] v1;
        v1 = new int[6];
        
        introVector(v1);
        
        buscaPar(v1);
        
    }
    
    public static void introVector(int [] v){
    Scanner teclado=new Scanner (System.in);


    for(int i=0;i<v.length;i++){
    System.out.println("Introduce un valor para la posición "+i);
    v[i]=teclado.nextInt();
    }

}
    
    public static void buscaPar(int [] v){
        int rest, cont=0;

    for(int i=0;i<v.length;i++){
        int div=(int)v[i];
        
        rest=div%2;
        
        if(rest==0){
            cont+=1;
        }
    }
        
    //nuevo vector para los pares
    int [] vPar;
    vPar = new int[cont];
    
    for(int i=0;i<v.length;i++){
        int div=(int)v[i];
        
        rest=div%2;
            if(rest==0){
                for(int j=0;j<vPar.length;j++){
                    vPar[j]=(int)v[i];
                }
            }
    }
    
    for(int i=0;i<v.length;i++){
    System.out.print(v[i]); 
    }
    
        System.out.println("");
        
    for(int i=0;i<vPar.length;i++){
    System.out.print(vPar[i]); 
    }

}
    
}
  #2 (permalink)  
Antiguo 13/01/2014, 12:42
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Copiar de un vector a otro solo números pares

Pues te voy a poner lo que yo haría ante ese problema

Código:
//El vector original yo lo he creado para el ejemplo tu puedes usar el que quieras
int vector[]={1,2,3,4,6,1,2,8,5,2},pares=0;
//ahora vamos a crear un vector a partir de este pero sólo con numeros pares

//primero hayamos cuantos numeros pares tiene este vector para hayar la longitud que tendra nuestro nuevo vector
//primero recorremos el vector
for (int f=0;f<vector.length;f++)
{
//cada vez que haya un numero par es decir es divisible entre dos "vease % residuo java" el contador pares aumentará
if (vector[f]%2==0)
pares++;
}
//creamos el nuevo vector con el tamaño de los pares
int vectorpar[]=new int[pares];

//ahora recorremos de nuevo el vector anterior

//la variable i amentará sólo cuando el vectorpar aumente
for (int f=0,i=0;f<vector.length;f++)
{
if (vector[f]%f==0)
{
vectorpar[i]=vector[f];
i++;
}
}
Y eso es todo si tienes alguna duda me dices

Etiquetas: programa, string, vector
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 15:22.