日期:2014-05-20  浏览次数:20870 次

OUT 使用的问题
下面的函数怎么总是提示错误信息
:控制离开当前方法之前必须对输出参数“T”赋值
请问应该怎么改?   谢谢!
public   void   PT_DIST(int   n,double   Q,out   double   T)
{

double   PIS,DFR2,C;
double   Q2,p,YQ,E;
double   GA1,GA2,GA3;
double   T0,pp,d;
int   K;
double   PI=3.14159265359;
PIS=Math.Sqrt(PI);
DFR2=n/2.0;
if(n==1)
{
T=Math.Tan(PI*(0.5-Q));
}
if(n==2)
{
if(Q> 0.5)
{C=-1;}
else
{C=1;}
Q2=(1-2*Q)*(1-2*Q);
T=Math.Sqrt(2*Q2/(1-Q2))*C;
}
p=1-Q;
PNorm(Q,out   YQ);      
E=(1-1/(4*n))*(1-1/(4*n))-YQ*YQ/(2*n);
if(E> 0.5)
{T0=YQ/Math.Sqrt(E);}
else
{
lnGamma(DFR2,out   GA1); lnGamma(DFR2+0.5,out   GA2);
GA3=Math.Exp((GA1-GA1)/n);
T0=Math.Sqrt(n)/Math.Pow(PIS*Q*n,1.0/n)/GA3;
}
for(K=1;K <30;K++)
{
T_Dist(n,T0,out   pp,out   d);
if(d==0)
{
T=T0;
break;
}
T=T0-(pp-p)/d;
if(Math.Abs(T0-T) <0.000001*Math.Abs(T))
{break;}
else
{T0=T;
}
}
}

------解决方案--------------------
有些情况 T没赋值

在开头
T=0;

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070130

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
有些情况 T没赋值

也可以在else 中T=....