求助:c++求pi,编译通过,但运行后无任何结果?

问题描述

求助:c++求pi,编译通过,但运行后无任何结果?


#include "stdafx.h"
#include
using namespace std;

int main()
{
double arctan(double);
cout << "pi= " << 16 * arctan(1 / 5.0) - 4 * arctan(1 / 239.0) << endl;
return 0;
}

double arctan(double x)
{
double result = 0;
int i = 1, k = 1;
do
{
for (k = 1; k <= (2 * i - 1); k++)
k *= x;
switch (i % 2)
{
case 1:
result += (k / (2 * i - 1)); break;
case 0:
result -= (k / (2 * i - 1)); break;
}
i++;
} while (k > 1e-15);
return result;
}

解决方案

 #include<iostream>
using namespace std;

double arctan(double);

int main()
{
    cout << "pi= " << 16 * arctan(1 / 5.0) - 4 * arctan(1 / 239.0) << endl;
    return 0;
}

double arctan(double x)
{
    double result = 0;
    int i = 1, s = 1;
        double k = 1.0;
    do
    {
        double t = 1;
        for (int j = 0; j < (i * 2 - 1); j++)
            t *= x;
                k = t / (double)(i * 2 - 1) * (double)s;
        result = result + k;
        s = -s;
        i++;
    } while (k > 1e-15);
    return result;
}

解决方案二:

pi= 3.1406

解决方案三:

什么无结果?你是怎样运行的?

解决方案四:

 #include "stdafx.h"
#include<iostream>
using namespace std;

double arctan(double);

int main()
{
    double a = 16 * arctan(1 / 5.0);
    double b = 4 * arctan(1 / 239.0);
    cout << "pi= " << a-b << endl;
    return 0;
}

double arctan(double x)
{
    double result = 0;
    int i = 1, j = 1;
    double k = 1;
    do
    {
        for (j = 1; j <= (2 * i - 1); j++)
            k *= x;
        switch (i % 2)
        {
        case 1:
            result += (k / (2 * i - 1)); break;
        case 0:
            result -= (k / (2 * i - 1)); break;
        }
        i++;
    } while (k > 1e-15);
    return result;
}

解决方案五:

 #include "stdafx.h"
#include<iostream>
using namespace std;

double arctan(double);

int main()
{
    double a = 16 * arctan(1 / 5.0);
    double b = 4 * arctan(1 / 239.0);
    cout << "pi= " << a-b << endl;
    return 0;
}

double arctan(double x)
{
    double result = 0;
    int i = 1, j = 1;
    double k = 1;
    do
    {
        for (j = 1; j <= (2 * i - 1); j++)
            k *= x;
        switch (i % 2)
        {
        case 1:
            result += (k / (2 * i - 1)); break;
        case 0:
            result -= (k / (2 * i - 1)); break;
        }
        i++;
    } while (k > 1e-15);
    return result;
}

解决方案六:

vs2015运行的结果怎么是3.17473?

解决方案七:

vs2015运行的结果怎么是3.17473?

解决方案八:

答案是这样的:

 #include "stdafx.h"
#include <iostream>

using namespace std;

double arctan(double x) {
    double sqr = x * x;
    double e = x;
    double r = 0;
    int i = 1;
    while (e / i > 1e-15) {
        double f = e / i;
        r = (i % 4 == 1) ? r + f : r - f;
        e = e * sqr;
        i += 2;
    }
    return r;
}

int main() {
    double a = 16.0 * arctan(1 / 5.0);
    double b = 4.0 * arctan(1 / 239.0);
    cout << "PI = " << a - b << endl;
    return 0;
}
时间: 2024-10-31 04:59:24

求助:c++求pi,编译通过,但运行后无任何结果?的相关文章

一个c++程序,编译没错。运行后出现错误 debug assertion failed

问题描述 一个c++程序,编译没错.运行后出现错误 debug assertion failed 具体错误如图 解决方案 VC++调程序出现如下错误: Debug Assertion Failed! Program: D:wyuStuddebugwyuStud.exe File: afx.inl Line:157 可能问题:1.野指针;2.内存泄露 解决方法: 1.看一看你的程序里是不是有ASSERT()或VERIFY()语句.这两个宏是用来测试它的参数是否为真的.出现你说的,这说明你的指针或表

新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神

问题描述 新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神 Loaded 'ntdll.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64kernel32.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64KernelBase.dll', no matching symbolic

c-大神们!求助啊!程序编译通过,但是不能运行!

问题描述 大神们!求助啊!程序编译通过,但是不能运行! 问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出. 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格. 输出格式:输出经过转换后的字符串.输入输出样例样例输入AeDb样例输出aEdB 上面是题目:下面附上我写的程序: #includeint main(){ int ij; cha

如何将ogre编译成apk 运行 求详细步骤或者链接也可以.

问题描述 如何将ogre编译成apk 运行 求详细步骤或者链接也可以. 如何将ogre编译成apk 运行 求详细步骤或者链接也可以.

c++-新手学C++求助大神,编译过了,运行错误搞不懂啊

问题描述 新手学C++求助大神,编译过了,运行错误搞不懂啊 #include using namespace std; struct Node { int data; Node *next; }; int count=0; Node *first; void creatList(int a[],int n) { Node *s,*r; r=first; for(int i=0;i { s=new Node; s->data=a[i]; r->next=s;r=s; } r->next=f

新手求助!树莓派内核编译时出错!求大神解答

问题描述 新手求助!树莓派内核编译时出错!求大神解答 树莓派编译时显示重复的case常量 找到相应代码有下面这样的说明,但是不知道该怎么改,有没有知道的大神,求教啊-- 解决方案 你的源码跟编译环境是否匹配

vc6 0 编译-求大神帮帮忙 运行出来 一直是0。c++

问题描述 求大神帮帮忙 运行出来 一直是0.c++ 在上机课做的. 输出一直是0. 是不是构造函数的问题. 好心人帮忙看看吧谢谢 解决方案 请楼主直接把源代码贴出来,我复制粘贴在我vs13上运行一下,如果哪里不对,我尽量帮您找 解决方案二: 可否把代码贴出来,这样发照片很难看的... 解决方案三: 请楼主直接把源代码贴出来,我复制粘贴在我vs13上运行一下,如果哪里不对,我尽量帮您找 解决方案四: 老师没空理我们.大神们帮帮忙啊 新手想好好学一下

c语言-求下面C程序的运行结果

问题描述 求下面C程序的运行结果 #include #define SIZE_NAME 30#define SIZE_STU 4 typedef struct _per_infor { char name[SIZE_NAME]; int age; char gender;}per_infor_t; int main() { per_infor_t stu[SIZE_STU]={ {""raul""25'F'}{""joe""2

求助!vc 6.0 搭建openssl运行出错

问题描述 求助!vc 6.0 搭建openssl运行出错 openssl已经编译成功.但在搭建运行一小段程序时报错. #include #include int main() { OpenSSL_add_all_algorithms(); return 0; } 报错如下图: 希望各位大神帮帮忙. 解决方案 把两段代码都截个图来看一下 解决方案二: VC++6.0新建工程,运行出错.VC6.0中对于openssl函数的调用 解决方案三: vc看是否支持对应的版本