Hola y gracias de antemano; mi problema es el siguiente.
Tengo la funcion:
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!
Ya lo he conseguido: dejo la solución por si a alguien le interesa en un futuro:
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;
}
}