質問: 判別式を定義したいのですが、どうすればいいのかがわかりません。 自分は以下のように定義しました。 判別式D=b*b-4*a*c>0のときは、解を2つ持つのでnum=2. 判別式D=0のときは、重解なのでnum=1。判別式D<0のときは解をもたないので、num=0と定義しましたが,うまくコンパイルができませんでした。 int num_of_ans1a()の部分は問題ないと思うのですが、int main()の部分のどこが問題なのかを教えてほしいです。 ``` int num_of_ans1a(int a,int b ,int c) { int num; if(b*b-4*a*c>0){ num=2; } if(b*b-4*a*c=0){ num=1; } else { num=2; } return num; } int main(void) { int n; n=num_of_ans1a(); printf("結果は%dです。",n); return n; } ```
回答: `int num_of_ans1a()`の2つ目の`if`で`(b*b-4*a*c = 0)`と言う風に条件式ではなく代入式になっています。 `=`は2つで`(b*b-4*a*c == 0)`になるのではないですか? それから`int main(void)`の中の`n=num_of_ans1a();`の呼び出しでは、引数が何も指定されていません。 この2つがコンパイル出来ない原因ではないですか? **追記:** ちなみにこれくらいのことだと、使っている開発環境(何かのIDE(統合開発環境), エディタ, コンパイラ)に含まれていたり仕様を合わせた拡張機能やLintツールを使うことによって簡単に調べたり検出したりすることが出来ます。 質問自体が不要になったり、質問するにしても詳しい情報が書けて答えも得やすくなりますので、検討してみてください。