-5

我的代码产生了这个错误:

ISO C++ 禁止指针和整数之间的比较 [-fpermissive]

我已经注释掉了我的代码主体,它不会影响导致错误的原因。该代码是我编写的用于计算牛顿法的程序的一部分。我真的不太了解指针。我现在正试图避免它们。我想要做的就是停止我的 while 循环,如果它运行太多次。

    int iter = 0;
    while (abs(nextValue - currValue) > 0.00000000001) and iter < 100000;
    {
//        currValue = nextValue;
//
//        double polyValue = 0;
//        int n3;
//        for (n3 = degree; n3 >= 0; n3--)
//        {
//            polyValue += coef[n3] * pow(currValue, n3);
//        }
//        double polynomial = polyValue;
//
//        polyValue = 0;
//        int n4;
//        for (n4 = degree; n4 >= 1; n4--)
//        {
//            polyValue += coef[n4] * n4 * pow(currValue, n4 - 1);
//        }
//        double polyPrime = polyValue;
//
//        nextValue = currValue - (polynomial / polyPrime);
        iter += 1;
    }
4

1 回答 1

2

while条件可能应该读作:

while (abs(nextValue - currValue) > 0.00000000001 && iter < 100000)

注意

  1. 末尾没有分号。
  2. 整个条件必须在括号中。
  3. and替换为&&- 这不是绝对必要的,因为and据我所知在 C++ 中有效,但到目前为止我从未见过and在生产代码中使用过。
于 2013-03-03T15:46:41.053 回答