判別式をプログラムしたいのですがやり方がわかりません


判別式を定義したいのですが、どうすればいいのかがわかりません。  
自分は以下のように定義しました。  
判別式D=b*b-4*a*c>0のときは、解を２つ持つのでnum=2.
判別式D=０のときは、重解なのでnum=1。判別式D<0のときは解をもたないので、num=0と定義しましたが,うまくコンパイルができませんでした。  
int num_of_ans1a()の部分は問題ないと思うのですが、int main()の部分のどこが問題なのかを教えてほしいです。

[code]

    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;
    }
    
[/code]




コンパイルエラーの原因は以下のとおりです。

  * 関数num_of_ans1aの２番目のif文に`=`を使っていますが、代入演算子とみなされエラーになっています。  
0と比較する場合は、`==`を使う必要があります。※kunifさんの回答のとおりです。

  * main()でnum_of_ans1a()を呼び出すとき、引数(a,b,c)が指定されていません。

コンパイルエラーとなりませんが、以下の問題があります。

> 判別式D<0のときは解をもたないので、num=0と定義しました

判別式`D<0`のとき、2番目のif文のelseで`num=2`になります。

また、最初のif文が成立するときも、2番目のif文のelse節が実行されます。  
2番目のifの前にelseを置く必要があります。

