南美洲的历史:C语言问题??

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 10:10:21
利用格里高利公式求P
p/4=1-1/3+1/5-1/7+...直到最后一项的绝对值小于等于10-6为止。
以下编程错在哪里??
#include "stdio.h"
#include "math.h"
main()
{
double e,pi;
long int n,s,t;
t=1.0;
n=1;
s=1;
pi=0.0;
while(fabs(t)>1e-6)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%lf\n",pi);
}

#include "stdio.h"
#include "math.h"
main()
{
double t,pi; /*你的e是多余的,所以去掉,把t定义成double */
long int n,s;
t=1;
n=1;
s=1;
pi=0.0;
while(fabs(t)>1e-6)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%lf\n",pi);
}

t应该设为浮点数,并且s/n时前面要加上一个1.0*,因为C语言里整数相除得到的是结果的整数部分,如3/2=1,5/2=2,8/3=2。