2015-02-07 43 views
0

我和其他兩個人正在爲我們的C++類開發一個項目,並且遇到了一個問題。該項目將在幾天內完成,因此我將這個問題提供給任何人和每個人,以便在我們到期之前解決問題。我們得到錯誤「abs不能用作函數」C++ error =「abs不能用作函數」(Group Class Project)

請您複習我們的編碼並給我們一些指導嗎?謝謝!

#include <iostream> 
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    double slope, yIntercept, xCoord, yCoord, yCoordCalc, yCalcLow; 
    double yCalcHigh, yCalcDifference, abs; 

    cout << "This program verifies that a selected point is on 
      a given line." << endl; 
    cout << "All input values may be integer or floating-point." << endl; 
    cout << "Enter slope: " << endl; 
    cin >> slope; 
    cout << "Enter y-intercept: " <<endl; 
    cin >> yIntercept; 
    cout << "Enter coordinates of the point: x y " << endl; 
    cin >> xCoord >> yCoord; 

    //calculate the Y coordinate; 
    yCoordCalc = slope * xCoord + yIntercept; 

    //calculate 2% above & below the yCoordCalc; 
    yCalcLow = yCoordCalc * .98; 
    yCalcHigh = yCoordCalc * 1.02; 
    //calculate the difference 
    yCalcDifference = yCalcHigh - yCalcLow; 


    //Now use absolute value to check it (delta reference); 
    if (abs((yCalcLow + yCalcDifference) - yCalcHigh) < yCoord) 
    { 
     cout << "The point is on the line."; 
     return 1; 
    } 
    else 
    { 
     cout << "The point is NOT on the line."; 
     return 0; 
    } 
} 

回答

3

你有一個變量

double abs 

即遮蔽功能

std::abs 

1)重命名你的變量
2)Stop using using namespace std

我將建議那些建議,而不只是一個。

+0

我不能停止使用命名空間標準爲這種特殊情況,否則我的老師會標記我的項目點。我刪除了變量名(因爲我不需要該變量),現在錯誤是「過載調用」(abs double)'不明確「 – Merlot 2015-02-07 20:19:38

+0

@Merlot使用'fabs'而不是'abs' – CoryKramer 2015-02-07 21:20:53

+0

感謝您的幫助!在您的幫助和持續研究中,我意識到我需要1.刪除變量(根據您的建議)2.使用cmath標題和3.更改yCalcDifference的計算。它現在編譯,運行並顯示爲與我的教練測試驅動器鏈接時的準確性。 – Merlot 2015-02-07 23:34:37