2013-03-03 62 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'? – 2013-03-03 15:45:30

+0

他們是雙打 – 2013-03-03 15:46:01

+3

你'while'循環括號太少。 – Puppy 2013-03-03 15:46:13

回答

2

while條件可能應該讀作:

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

注意

  1. 有結尾沒有分號。
  2. 整個條件必須在括號內。
  3. and被替換爲&& - 這不是嚴格必要的,因爲and在C++中是有效的,據我所知,但我從未見過and在生產代碼中使用到目前爲止。
相關問題