Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 循环不停止时执行_C++_Do While - Fatal编程技术网

C++ 循环不停止时执行

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处的

我正在尝试创建间隔半潜水法(数值法),程序中有一个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 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]));