problemas con la respuesta de una función

Juancho
14 de Septiembre del 2003
Estoy escribiendo un programa, dentro del cual tengo una función que me regresa un float; lo imprimo previo al return y veo el valor que tiene; pero al salir el valor de la función se convierte en 0.00000 el siguiente es el codigo de la función:

float fun_pasoE(struct tr_t *tr, float *xn, float **x, int c ){

float PasE;int j, d;

printf("Estoy en el paso E ");

PasE=((tr->p[c])*Prx(tr,xn,(c/tr->M)))/(pra(tr,xn,(c/tr->M))); printf("PE=%fn",PasE);

return PasE;}



llamado a la funcion:

for(n=0;n<N;n++){Y=fun_pasoE(tr,x[n],x,tr->clase[n]);printf("PasoE=%f PasoE=%fn",fun_pasoE(tr,x[n],x,tr->clase[n]),Y);}

resultado:

PE=0.193252

PasoE==0.000000 PasoE=0.000000



después de esto he modificado la función y tengo un error similar en un calculo cuando realizo sigma[j][d] tr->sigma[j][d]=(tr->p[j])*(pow((xn[d]-tr->miu[j][d]),2)/tr->p[j]); y la imprimo en la línea printf("[%d][%d] %f,%fn",j,d,tr->miu[j][d],tr->sigma[j][d]); me sucede similar

float fun_pasoE(struct tr_t *tr, float *xn, float **x, int c ){

float PasE;int j, d;

printf("Estoy en el paso E ");

PasE=((tr->p[c])*Prx(tr,xn,(c/tr->M)))/(pra(tr,xn,(c/tr->M))); printf("PE=%fn",PasE);

for (j=(c*tr->M);j<((c+1)*tr->M);j++) {tr->p[j]+=(PasE); printf("tr->p[%d]=%fn",j,tr->p[j]);

for (d=0;d<tr->D;d++){printf("[%d][%d] %f,%fn",j,d,tr->miu[j][d],tr->sigma[j][d]);

tr->miu[j][d]= (tr->p[j]*xn[d])/(tr->p[j]);}

for (d=0;d<tr->D;d++){printf("[%d][%d] %f,%fn",j,d,tr->miu[j][d],tr->sigma[j][d]);

printf("%f",(tr->p[j])*(pow((xn[d]-tr->miu[j][d]),2)/tr->p[j]));

tr->sigma[j][d]=(tr->p[j])*(pow((xn[d]-tr->miu[j][d]),2)/tr->p[j]);printf("[%d][%d] %f,%fn",j,d,tr->miu[j][d],tr->sigma[j][d]);}}

return PasE;}



resultado

tr->p[0]=0.393252

[0][0] 0.989014,0.107514

0.000000[0][0] 0.989014,0.000000

[0][1] 0.557005,0.091614

0.000000[0][1] 0.557005,0.000000

[0][2] 0.719470,0.128977

0.000000[0][2] 0.719470,0.000000

[0][3] -0.096884,0.111393

0.000000[0][3] -0.096884,0.000000

[0][4] 0.444178,0.082159

0.000000[0][4] 0.444178,0.000000

[0][5] 0.742374,0.125128

0.000000[0][5] 0.742374,0.000000

[0][6] 0.779877,0.127222

0.000000[0][6] 0.779877,0.000000

[0][7] 1.264877,0.123685

0.000000[0][7] 1.264877,0.000000



Si alguien me puede colaborar se lo agradezco mucho



Juan Pachanga