Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mihina en 25 Febrero 2011, 17:24 PM

Título: Array dinamicas Ayuda plis!
Publicado por: mihina en 25 Febrero 2011, 17:24 PM
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!
Título: Re: Array dinamicas! Resuelto!!!
Publicado por: mihina en 25 Febrero 2011, 22:46 PM
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;
    }
}