使用格雷戈里公式求pi的近似值

问题背景:

  • 输入一个精度e,使用格雷戈里公式计算pi的近似值。

  • 格雷戈里公式:

    在这里插入图片描述

解决方案:

  • 首先定义函数funpi(e)用来求pi的近似值。
  • 使精确度精确到最后一项的绝对值小于e。
  • 使用do-while循环控制是否需要持续输入。

程序源代码:

#include<stdio.h>
#include<math.h>
double funpi(double e);//函数声明
int main(void)
{
	char ch;
	double e,pi;
	do{
		printf("Enter e:");
		scanf("%lf",&e);
		pi=funpi(e);//调用函数
		printf("pi=%f\n",pi);

		printf("Do you want to continue?(Y/N):");
		scanf(" %c",&ch);
	} while((ch=='y')||(ch == 'Y'));

	printf("Thank you.\n");
	while(1);//显示
	return 0;
}

double funpi(double e)//定义计算pi的函数
{
	int denominator,flag;
	double item,sum;

	flag=1;
	denominator=1;
	item=1.0;
	sum=0;

	while(fabs(item)>=e){
		item=flag*1.0/denominator;
		sum=sum+item;//累加
		flag=-flag;
		denominator=denominator+2;
	}

	return sum*4;
}


编译运行结果:

Enter e:0.001
pi=3.143589
Do you want to continue?(Y/N):Y
Enter e:0.0001
pi=3.141793
Do you want to continue?(Y/N):Y
Enter e:0.00001
pi=3.141613
Do you want to continue?(Y/N):n
Thank you.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空林长风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值