考慮以下幾點:評估和打印階乘
double fact(int n)
{
int i;
double res = 1;
for (i = 1; i <= n; i++)
res *= i;
return res;
}
double f = 1;
for (int i = 0; i < 16; i++)
{
printf("%lf \n", fact(2*i + 1));
f *= (f + 1)*(f + 2);
printf("%lf \n", f);
}
爲什麼fact(2*i+1)
結果的正確值,而f
結果1.#INF00
一個奇怪的值?
據我所看到的,其實' ()'是一個函數,'f'是代碼中的一個變量和一個無意義的'for'循環。你介意一點點? – 2015-04-06 07:48:02