>>642
識者ではないが、普通ならこんな感じでいいんじゃないの?
(何のテストもしてないけど)

double NPV(double out, double in[], int time, double r)
{
double u;

out = -out;
for(u = r ; time -- ; u *= r)
out += *in ++ / u;
return out;
}