作业帮 > 综合 > 作业

利用pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...,编程计算pi的近似值,直到最后一项的绝对值小于10

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/07 04:57:28
利用pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...,编程计算pi的近似值,直到最后一项的绝对值小于10-4为止,输出pi的
利用pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...,编程计算pi的近似值,直到最后一项的绝对值小于10-4为止,输出pi的值并统计累加的项数.
友情提示:pi 定义成double
输入要求:无
输出要求:""pi = %f\ncount = %d\n""
Input sample:
Output Sample:
pi = 3.141793
count = 5001
c语言编程
我编的为
#include #include
#include
int main(){
int a;
double pi;
a=1;
pi=0;
do
{
if (a%2!=0)
{
pi=pi+1/(2*a-1);
a++;
}
else
{
pi=pi-1/(2*a-1);
a++;
}
}while ((1/a)>1e-4); a=a-1;
printf("pi = %f\ncount = %d\n",pi,a);
return 0;
}
为什么输出pi=1.000000
count=1呢
利用pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...,编程计算pi的近似值,直到最后一项的绝对值小于10
你的问题主要是类型的问题.
因为a 是int型的,你在计算的时候不转型成浮点型是不对的(1/a=0)
因此你要写成:
pi=pi+1.0/(2*a-1);
pi=pi-1.0/(2*a-1);
还有判断条件:
while ((1.0/a)>1e-4);
另外,你注意了没有这个公式是pi/4所以为了得到要求的输出,你要写:
printf("pi = %f\ncount = %d\n",pi*4,a);