//错误代码
int pi()
{
double p=0,j=0;
double pi=0;
p =1/(4*j-1);
for(int i=0;i<100000;i++)
{
pi=-(-1)^j*p+pi;
printf("%lf",4*pi);
}
return 0;
}
void main ()
{
//求pi
int pi();
}
错因:pi=-(-1)^j*p+pi; 数学上的表达式在C语言中无法直接处理的,需要调用Math函数;可能还没有完全的接受C语言的思维。
//正确代码
void pi2()
{
double p=0,j=1;
int i;
for( i=1;i<10000;i++ ) //此处i为项数
{
j=pow(-1.0,i+1)/(2*i-1); //pow(x,y)用来求x的y次幂
p+=j;
printf("%lf\n",4*p); //输出每一项的值
}
printf("%lf\n",4*p); //输出最终pi值
// return 0;
}
void main ()
{
//求pi
pi2();
}