注册 登录
编程论坛 C++教室

浮点型计算

洌改 发布于 2017-10-27 09:09, 2432 次点击
利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数)。
∏/4 = 1-1/3+1/5-1/7...
样例输入:
0.0005
样例输出:
3.14259

测试输入:
0.00001
测试输出:
3.14162

测试输入:
0.000005
测试输出:
3.14161

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
float f(float);
int main(){
    float e=0.0;
    cin>>e;
    cout << setiosflags(ios::fixed)<<setprecision(5)<<f(e);
    return 0;
}
float f(float t)
{
    float a=0;
    int k=1;
    for(int n=0;;n++)//不用算最后化简的值,直接用每一项对应的数字即n来表示每一项的值
    {
        a=a+1/(2*n+1)*k;
        if(1/(2*n+1)<t)
            break;
        
        k*=-1;
    }

 return a*4;
}
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2017-10-29 15:35编辑过]

4 回复
#2
rjsp2017-10-27 11:37
你的问题是什么?请详细说明。
编译失败,请贴出编译器给出的错误信息;
运行结果不符合你的预期,请贴出你的输入、程序输出,及你期待的程序输出。
#3
洌改2017-10-28 19:33
回复 2楼 rjsp
抱歉,上一道数组是我自己出了点问题,没有注意到一个小细节,重新贴了一道,数据测试的时候出了问题
#4
rjsp2017-10-30 08:22
两处 1/(2*n+1)
改为 1.0/(2*n+1)

另外,不要贴图,直接说“输入0.00001,期待输出3.14162,实际输出4.00000”
#5
洌改2017-10-31 15:10
加小数点意思是声明为浮点型了?
1