|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】
输入精度值e,按照公式π/4=1-1/3+1/5-1/7+⋯计算π的近似值,要求精确到最后一项的绝对值小于e(此时,这一项不应该加入到π的近似值中),结果保留6位小数。
【输入形式】
从键盘输入精度值e
【输出形式】
pi=值
【样例输入】
0.0001
【样例输出】
pi=3.141397
#include"stdio.h"
#include"math.h"
int main()
{
int flag,s;
float item,pi,e;
scanf("%f",&e);
flag=s=1;
item=1;
pi=0;
while(fabs(item=flag*1.0/s)>e)
{
空空空空
}
pi=pi*4;
printf("pi=%f",pi);
return 0;
}
本帖最后由 番杰 于 2021-10-22 15:51 编辑
- pi += item; // pi相当于总和;
- flag = ~ flag; // flag相当于每一项前面的正负号;~是取反,即:1 取反为-1,-1取反为1.
- s += 2 ; // s 相当于题中的分母,每一项比前一项多2;
复制代码
不太清楚 ,空空空空 是指的需要填四个空嘛?
要是四个空,这样写:
- pi += item;
- flag = ~ flag; //这句也可以写成:flag *= -1 ; 都是一个效果
- s++;
- s++;
复制代码
|
|