do..while循环不停止

时间:2015-09-26 09:28:37

标签: c++ do-while

我正在尝试创建间隔半潜水方法(数值方法),并且在程序中有一个do / while循环,它无法正常工作:

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]));

...

var table = $('#example').DataTable({
    columns: [
        null,
        null,
        {
            "render": function(data, type, row){
                return data.split(", ").join("<br/>");
            }
        }
    ]
});

我得到的是:

enter image description here

我需要在x [4]之前停止循环,因为f(x [3])&gt; f(x [2]),也许有人看到我的错误?

1 个答案:

答案 0 :(得分:2)

这是一个“一个接一个”的错误。你在循环测试之前增加了k,所以你正在测试错误的索引 - 比较k - 1k - 2的元素,一切都应该没问题。

请注意,如果您在调试器中单步执行代码,随时检查变量,那么错误很快就会变得明显。当你学习编程时,这是一项重要的技能。

相关问题