Array dinamicas Ayuda plis!

Iniciado por mihina, 25 Febrero 2011, 17:24 PM

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

mihina

Hola y gracias de antemano; mi problema es el siguiente.

Tengo la funcion:
Código (cpp) [Seleccionar]

void histograma(TaulaParaula t,int n,int pllarga)
{
    int *hist = NULL;
    int pos;

    hist = new int[pllarga];

    for(int i=0; i<pllarga; i++)
    {
        hist[i]=0;
    }
    for(int i=0; i<n; i++)
    {
        hist[t[i].llarg]++;
    }
    for(int i=0; i<n; i++)
    {
        cout << hist[i] << endl;
    }

    delete [] hist;
    hist=NULL;
}


pllarga es la grandaria de la array.

Primer pongo en la array todos los valores a cero.
En el siguiente for t.llarg es un struc donde se guarda la largada de una palabra ejemplo: hola ->4. struc tiene n componentes.
Y lo que quiero es incrementar 1 a la array correspondiente.

ejemplo:
t.llarg=4
pues en hist[4] incrementar 1.

Por eso he hecho hist[t.llarg]=hist[t.llarg]+1;

pero no me va siempre me muestra 0.

Sabeis xk? Gracias!
Ten en muy en cuenta tus objetivos!!!
Puede ser que sea lo único que te de ánimos para continuar!!

mihina

Ya lo he conseguido: dejo la solución por si a alguien le interesa en un futuro:

Código (cpp) [Seleccionar]
bool histograma(TaulaParaula t,int n,int pllarga)
{
    int *hist=NULL;
    bool decreixent=true;

    hist = new int[pllarga];

    for(int i=0; i<pllarga; i++)
    {
        hist[i]=0;
    }
    for(int i=0; i<n; i++)
    {
        hist[t[i].llarg-1]=hist[t[i].llarg-1]+t[i].rep;
    }
    for(int i=0; i<pllarga; i++)
    {
        cout <<"["<<i+1<<"]"<<" - "<< hist[i] << endl;
    }
}
Ten en muy en cuenta tus objetivos!!!
Puede ser que sea lo único que te de ánimos para continuar!!