2017-03-17 78 views
0

我正在觀看YouTube教程,此代碼在視頻中,並且對他們工作良好。C - 錯誤:預期表達式

但是當我構建/運行它時,我得到'錯誤:預期表達式'錯誤。

這是錯誤信息行我得到它:

../main.c:33:12: error: expected expression 
     average = float(total)/float(howMany); 
       ^

這是我在下面的視頻: https://www.youtube.com/watch?v=gWppLYaCICM

我無法找到安裝此確切什麼解決方式,也這對我有意義。

在此先感謝。

+0

的[可能的複製究竟是什麼在C類型轉換/ C++?](http://stackoverflow.com/questions/7558837/what-exactly-is-a-type-cast-in-cc) –

+0

'float(total)'是一個C++風格的演員,所以顯然它贏得了'在C中工作。嘗試在C++編譯器中編譯,你會看到。其他重複:[代碼與g ++編譯但不是gcc](http://stackoverflow.com/q/24583476/995714),[在C/C++中的顯式類型轉換運算符](http://stackoverflow.com/q/39888189/995714) –

回答

1
average = float(total)/float(howMany); 

您的鑄造語法錯了;它是數據類型被轉換爲變量,該變量位於括號內,而不是變量本身。

這樣做:

average = (float)total/(float)howMany; // "float" goes in parenthesis here, not "total" or "howMany" 

順便說一句,你不需要投的分紅除數;即使您只將其中一個投入到浮動狀態,假設average的類型爲浮動類型,最終結果也會以average的值保存爲float值。

所以這樣做:

average = (float)total/howMany; // Here, only one of the variables involved in the mathematical operation is casted to float. 

是一樣的鑄造兩個變量浮動。

祝你好運!


編輯:說句題外話,下面的語法,沒有用C的工作是在C++ 有效

average = float(total)/float(howMany); 
+0

這是一個正確的C++風格的轉換 –

+0

它也適用於C.檢查視頻OP正在播放。 –

+0

在C編譯器中嘗試'float(total)'來查看它是如何工作的。但是等一下,你說「你的語法是錯誤的」,這意味着它在C中是錯誤的,現在你說它在C中工作? –