2017-03-17 14 views
0

私はYouTubeのチュートリアルを見ていて、このコードはビデオにあって、うまく機能しました。C - エラー:期待される表現

しかし、私はそれをビルド/実行するときに 'error:expected expression'エラーが発生します。

これは私がそれを取得し、エラーメッセージ行です:

../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" 

を通りさておき、あなたは配当除数をキャストする必要はありません。そのうちの1つだけを浮動小数点にキャストしても、最終結果はaverageがfloat型であると仮定すると、averageにはfloatという値で保存されます。

だから、これをやって:

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

が浮かぶように、両方の変数をキャストと同じです。

幸運を祈る!


EDIT:さておき、Cには動作しませんでした、次の構文はC++で有効あるよう:[の

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

これは正しいC++スタイルのキャスト –

+0

です。これはCでも動作します。OPの再生中のビデオを確認してください。 –

+0

Cコンパイラで 'float(total)'を試して、どのように動作するかを確認してください。しかし、あなたは "間違ったキャストの構文を持っています"ということは、C言語では間違っていることを意味しています。 –

関連する問題