gpt4 book ai didi

c++ - 怎么了?如何更改 "sum1"顺序?

转载 作者:行者123 更新时间:2023-11-27 22:29:37 24 4
gpt4 key购买 nike

我正在尝试使用泰勒级数公式计算 cos x 的值

             infinity
---- 2k
\ k x
cos(x) = / (-1) * -------------
---- (2k)!
k=0

图形显示在 http://ppt.cc/G,DC

这是我的程序。

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


int _tmain(int argc, _TCHAR* argv[])
{
double sum=0.0,sum1=0.0;
double x;
cin>>x;
for(int i=0 ; i<=10 ; i=i+1 )
{
for(int i=1 ; i<=20 ; i=i+1)
{
sum1=i*sum1+sum1;
}
sum=pow(-1,(double)i)*pow(x,(double)(2*i))/sum1+sum;
}
cout<<"Sum : "<<sum<<endl;
system("pause");
return 0;
}

输出是-1.#IND

为什么?

如何更改“sum1”的顺序以使其正常工作?

最佳答案

您正在使用 i 作为两个相互嵌套的 for 循环的控制变量的名称。这不会像您期望的那样工作。

接下来,sum1 为 0。无论您将零乘以事物多少次并在其中加零,它仍然是零。然后除以零,这就是为什么您的最终答案是 NaN(非数字)。

您需要修正阶乘的计算。为什么不写一个阶乘函数,先自己测试一下?

关于c++ - 怎么了?如何更改 "sum1"顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com