elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Ejercicio en C en: 10 Agosto 2018, 01:33 am
Hola a todos! Estoy comenzando a estudiar programación. Y necesito ayuda con un ejercicio. La verdad es que ya intente de varias formas y no me sale. Quisiera por lo menos alguna pista. Seguramente ustedes sabrán alguna manera de hacerlo.
El ejercicio es el siguiente:

Tengo un archivo. Lo parseo, osea lo leo y lo guardo en un ArrayList. Hasta acá todo bien. El archivo contiene caracteres. Osea 'a', 'b', 'z', '4' etc.
El ejercicio me pide que haga una lista con todos los caracteres que tengo en el arraylist de manera ascendente y que aparezcan una ves cada uno. (porque hay varios caracteres que se repiten). El problema es que no se me ocurre como hacer una función que me los liste sin que se repitan.

Código:
ArrayList* listaOrdenadaAscendente(ArrayList* this, ArrayList* this2)
{
    int i;
    int len = al_len(this);
    eCaracter* letra;
    if(this != NULL && this2 != NULL)
    {
        for(i=0;i<len;i++)
        {
            letra = (eCaracter*) al_get(this,i); //asignamos los elementos del arraylist a la estructura,
            if(comprobarSiEsRepetida(this2,letra) == 1)
            {
                al_add(this2,letra); //agregamos los elementos a la nueva lista que van asignados los caracteres sin repetir.
            }
            else
            {
                al_remove(this2,i); //si ya existe el caracter lo elimino
            }
        }
    }
    return this2;
}

int comprobarSiEsRepetida(ArrayList* this, eCaracter* letra)
{
    int i, index = -1;
    eCaracter* aux;
    int len = al_len(this);
    if(this != NULL && letra != NULL)
    {
        for(i=0;i<len;i++)
        {
            aux = (eCaracter*) al_get(this,i);
            if(get_Caracter(aux) == get_Caracter(letra)) //Comparamos si son iguales
            {
                index = 0;
                break;
            }
            else
            {
                index = 1;
                break;
            }
        }
    }
    return index;
}

Gracias por su tiempo!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines