作业帮 > 综合 > 作业

请问我这段求π的近似值的程序有什么错误么?(利用公式π/4=1-1/3+1/5-1/7……)

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/14 04:00:55
请问我这段求π的近似值的程序有什么错误么?(利用公式π/4=1-1/3+1/5-1/7……)
#include
#include
int main()
{int sign=1,n=1;
double pi=0.0;
for(double term=1.0;fabs(term)>=1e-6;sign=-sign,n=n+2,term=sign/n);
{pi=pi+term;}
printf("π的近似值为%f\n",pi);
return 0;
}
请问我这段求π的近似值的程序有什么错误么?(利用公式π/4=1-1/3+1/5-1/7……)
有3个主要问题:
1."for(double term=1.0;fabs(term)>=1e-6;sign=-sign,n=n+2,term=sign/n);"这句末尾多了一个分号.
2.term=sign/n恒为0,因为整数除以整数结果为整数.应该写成term=(double)sign/n
3.最后输出部分应该是4*pi
说明:你的这段代码很不规范,在c语言中变量的定义最好都放在程序的开头,另外for循环里面最好不要写过于复杂的结构,因为这样一方面可读性很低,另一方面很容易出错.最后for语句里面尽量用整型变量,浮点效率比较底.可以参考一下我的代码:
void main()
{
int i,sign=1,loop=1000000;
double pi=0;
for(i=1;i