问题背景:
输入一个精度e,使用格雷戈里公式计算pi的近似值。
格雷戈里公式:
解决方案:
程序源代码:
#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=%fn",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.
本文发布于:2024-01-28 13:22:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064193357712.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |