C++ 循环不停止时执行
我正在尝试创建间隔半潜水法(数值法),程序中有一个do/while循环,无法正常工作:C++ 循环不停止时执行,c++,do-while,C++,Do While,我正在尝试创建间隔半潜水法(数值法),程序中有一个do/while循环,无法正常工作: double Funkcija(double x){ double result = -1/(1+abs(x)); return result; } double x[20]={}; x[0]=1//起始点 int k=1;//索引(从1开始,因为0给出(x0) 做 { cout这是一个“off by one”错误。在循环测试之前,您增加了k,因此您测试了错误的索引-比较k-1和k-2处的
double Funkcija(double x){
double result = -1/(1+abs(x));
return result;
}
double x[20]={};
x[0]=1//起始点
int k=1;//索引(从1开始,因为0给出(x0)
做
{
cout这是一个“off by one”错误。在循环测试之前,您增加了k
,因此您测试了错误的索引-比较k-1
和k-2
处的元素,一切都应该正常
请注意,如果您在调试器中单步执行代码,在执行过程中检查变量,那么错误很快就会变得明显。这是学习编程时需要掌握的一项重要技能
double x[20] = {};
x[0] = 1; //initial point
int k = 1; // index (from 1 because 0 is giving (x0)
do
{
cout << "x[" << k << "]= ";
x[k] = x[k - 1] - pow(2, k - 1)*abs(d);
cout << x[k] << "\t";
cout << "f(x[" << k << "])= " << Funkcija(x[k]) << endl;
k++;
} while (Funkcija(x[k]) < Funkcija(x[k-1]));