C++ 如何防止代码停止?问题是什么?(更新)
我想把这个系列翻译成一个代码,让我知道它的总数。以下是系列:C++ 如何防止代码停止?问题是什么?(更新),c++,c++11,math,equation,C++,C++11,Math,Equation,我想把这个系列翻译成一个代码,让我知道它的总数。以下是系列: X+(-1/3)X^3+(1/5)X^5+(-1/7)X^7++(-1)^(n-1)/2n-1)X^(2n-1) 这就是代码(顺便说一下,我不能使用cmath库..): #包括 使用名称空间std; int main() { cout>x; 做 { cin>>n; 如果(n在处理系列中的分数时,您应该考虑对x、xValue、sum、an和因子使用float或double(取决于您需要的精度)(由于其值为1/some_int,因此如果
X+(-1/3)X^3+(1/5)X^5+(-1/7)X^7++(-1)^(n-1)/2n-1)X^(2n-1) 这就是代码(顺便说一下,我不能使用cmath库..):
#包括
使用名称空间std;
int main()
{
cout>x;
做
{
cin>>n;
如果(n在处理系列中的分数时,您应该考虑对x
、xValue
、sum
、an
和因子使用float
或double
(取决于您需要的精度)(由于其值为1/some_int
,因此如果factor
为int
,则该值几乎总是0
)
第二个问题是
嵌套循环的,它们没有任何递增项,因此它们无休止地工作,类似于而(true){…}
循环-几乎总是i
小于denom
(仅当i=1
的denom
的值是1
)。您应该考虑重新构建这些函数以处理其他变量,比如j
。然后您可以这样计算x的n次方:
for (int j = 0; j < denom; j++)
xValue *= xValue;
for(int j=0;j
还有几件事你应该修正,例如你的denom
在程序运行时不会改变它的值,在i
第一次声明它之后它就有了固定的值,我认为你应该使用double
而不是int
。而且,循环的两个没有+i
…这是无止境的loop对于(;i)它向您展示了什么?实际的输入和输出以及预期的输出对您来说是有价值的。
for (int j = 0; j < denom; j++)
xValue *= xValue;