2013-11-26 39 views
2

我是新來的函數,並試圖理解我做錯了什麼。我的構建消息吐出了錯誤:'0'不能用作函數,並在函數中突出顯示行return ((5/9)(fahrenheit - 32));。提前感謝您的任何建議。C++函數 - 錯誤:'0'不能用作函數

#include <iostream> 
using namespace std; 

double celsiusFunction(double fahrenheit); 

int main() 
{ 
    double fahrenheitTemp; 

    fahrenheitTemp = celsiusFunction(99); 
    cout << fahrenheitTemp; 

    return 0; 
} 

double celsiusFunction(double fahrenheit) 
{ 
    return ((5/9)(fahrenheit - 32)); 
} 
+0

你試圖通過寫'((5/9)(華氏-32))'來達到什麼目的?你是否偶然忘記了乘號:即((5/9)*(華氏-32))' –

+0

還要注意'(5/9)'將爲0,因爲它被認爲是整數除法。使用'(華氏溫度 - 32)* 5/9'或'(5.0/9.0)*(華氏溫度 - 32)'來獲得正確的結果。 – CompuChip

+0

另一種說出已經回答的方式是......沒有隱含的乘法,如果這就是你所嘗試的。 – ChiefTwoPencils

回答

8
  1. 5/90,因爲它們都是整數,因此它在整數運算中被評估。改爲:5.0/9.0以獲得浮動結果。

  2. 你不是在return聲明相乘,所以編譯器把第二個括號爲功能可按通話(即調用5/9帶有參數fahrenheit - 32)。這當然是無稽之談。這樣做:

    return (5.0/9.0) * (fahrenheit - 32.0); 
    
4
((5/9)(fahrenheit - 32)) 
\_____/\_______________/ 
    1   2 

2被解釋爲1.函數調用你忘了乘法:

((5/9) * (fahrenheit - 32)) 
1

你應該改變return ((5/9)(fahrenheit - 32));

return ((5/9)*(fahrenheit - 32)); 

(5/9)後添加*。 由於缺少*,您將收到錯誤消息。