牛顿的C++方法

Yag*_*ami 1 c++

好的,我正在尝试将我的牛顿放入这个C++,这是我的代码:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
  double x1, x0;
  int n,i;

  cin >> x0, n;

  for(i = 1; i <= n; i++)
  {
      x1 = x0 - ((4.0*pow(x0,3.0)-2.0*pow(x0,2.0)+3.0)/(12.0*pow(x0,2.0)-4.0*x0)); #problem
      x0 = x1;
  }

  cout << x1;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

好吧,也许我的代码没有很好地描述给你,但问题是#problem部分,当我把它放在迭代方法上时,它很好地编译没有给出错误,但是当我运行时,它需要很长时间,而且只是冻结x0,n的输入(参见迭代前的代码),即使我插入n = 1,但删除迭代,它运行良好,并给出预期的答案(在这种情况下我不能进行迭代,类似于n = 1).这是什么原因?因为我想做4次迭代.

Mik*_*our 5

cin >> x0, n;
Run Code Online (Sandbox Code Playgroud)

只读入x0,留下n包含垃圾值.阅读两者,你想要的

cin >> x0 >> n;
Run Code Online (Sandbox Code Playgroud)

请记住启用编译器警告:大多数编译器会检测到这样的错误.