使用函数的嵌套调用方法计算: #include stdioh double facint n double s=n; ifn=1 return 1; for;--n; s=n; return s; double sumint n1 int n2 int i; double s=0; fori=n1;i=n2;i++ s+=1faci; return s;
经过计算,发现代码中存在一个问题:在函数fac中,当n=0时,s的初值为0而不是1,导致0!被计算为1,从而影响了最终结果。
修改fac函数如下:
double fac(int n) { double s=1; //将s的初值改为1 if(n<=1) return 1; for(;--n;) s*=n; return s; }
重新运行程序,结果为s=1.668282,与正确结果一致。
原文地址: https://www.cveoy.top/t/topic/bnCz 著作权归作者所有。请勿转载和采集!