Eliminar elementos repetidos de un vector

Iniciado por GaLaN GaLaNaSo 3000, 5 Julio 2004, 12:01 PM

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

GaLaN GaLaNaSo 3000

Estoy en el segundo semetres de Ing de sistemas estamos programando en Java y bueno el profe nos dio 6 problemas y no pude resolver uno el de eliminar los elementos repetidos de un vector eJ:

vector  inicial ==>   9-3-2-9-5-6


vector final ==> 9-3-2-5-6

bueno yo por poco lo logro bueno utilize 2 for anidados para poder definir cuantos numeros repetidos hay y le meti un contador para que se incremente cada vez que hay un numero repetido luego cree un vector de la misma dimencion que el anterior pero restandole en contador pero ya para eliminar lo repetidos falla mi logica alguna ayuda o pista de como hacerlo sirve si me dan ejemplos en pascal y delphi  :P es casi lo mismo.

graciasssssss
La ***** en este foro cada ves veo mas gente que quiere hackear hotmail o que pregunta webadas asi como tambien veo webones que se creen los dueños del foro se ponen a putear a diestra y siniestra Tal ves creeran que la gente asi los repetara. Ah esos malditos les digo que si no quieres aportar no aporten pero quedense callaos cabrones. Que ironia usar la violencia para resolver la violencia no!!

SiesteR

#1
Hola!

me gustaria poder ofrecerte la yauda en pascal pero hace 2 años qu eno lo toco, y ademas en linux no se como usar el compilador de pascal. Por eso espero que entiendas C, que es como lo he hecho.

La idea basica es la de usar un array auxiliar en el q vas metiendo los numeros q hayas leido del array incial. Primero lees un numero del array inicial y lo escribes en el auxiliar, luego recorres el array auxiliar y cuentas las veces q esta ese numero q leiste. Si esta 1 vez lo pasas al array final simplificado, si esta mas de 1 vez no lo escribes en el array simplificado. Y vuelves a repetir la operacion pero leyendo el siguiente numero del array inicial.

#include <stdio.h>

int main (void) {
        int v_original [10];
        int v_aux [10];
        int v_final [10];
        int cont,num,i,j=0,k,z=0 ;

        for (i=0; i<10; i++) {
                printf("Introduce el valor del array incial %d: ", i+1);
                scanf("%d",&v_original[i]);
        }


        for (i=0;i<10;i++) {
                cont=0;
                num=v_original[i];
                v_aux[j]=num;
                j++;
                for (k=0;k<10;k++)
                        if ( v_aux[k] == num )
                                cont++;

                if ( cont == 1 ) {
                        v_final[z]=num;
                        z++;
                }
        }


        printf("El array simplificado es: \n");
        for (i=0;i<z;i++)
                printf ("%d \n",v_final[i]);

        return 0;
}



Ejemplo de uso:
~$ ./vectunico
Introduce el valor del array incial 1: 1
Introduce el valor del array incial 2: 1
Introduce el valor del array incial 3: 1
Introduce el valor del array incial 4: 2
Introduce el valor del array incial 5: 2
Introduce el valor del array incial 6: 2
Introduce el valor del array incial 7: 3
Introduce el valor del array incial 8: 3
Introduce el valor del array incial 9: 3
Introduce el valor del array incial 10: 4
El array simplificado es:
1
2
3
4
~$


Espero q lo entiendas :) Hastaluego

osolmm

Gracias, lo aplique a String en Java y fuciona   :xD    :D    :xD.


Saludos