2013-03-03 3 views
-5

Мой код выдает эту ошибку:Почему мой int указатель?

ISO C++ forbids comparison between pointer and integer [-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; 
    } 
+1

Как вы объявляете 'nextValue' и' currValue'? –

+0

они удваиваются –

+3

В вашем цикле 'while' слишком мало скобок. – Puppy

ответ

2

while состояние, вероятно, следует читать как:

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

Обратите внимание, что

  1. Там не точка с запятой в конце.
  2. Все условие должно быть в круглых скобках.
  3. and заменен на && - это не обязательно, потому что and действителен на C++, насколько я знаю, но я до сих пор не использовал and.
Смежные вопросы