質問: int main(void) { int a,b,c; printf("整数 a を入力してください"); scanf("%d\n",&a); printf("整数 b を入力してください"); scanf("%d\n",&b); printf("整数 c を入力してください"); scanf("%d\n",&c); double d,e; d=(-b+sqrt(b*b-4*a*c))/2*a; e=(-b-sqrt(b*b-4*a*c))/2*a; if(b*b-4*a*c>0){ printf("実数解は%fと%fです",d,e); } else if(b*b-4*a*c=0){ printf("実数解は%f(重解)です",d); } else { printf("実数解はありません"); } return 0; } 正直なところmath.hの使い方がよく分かりません。sqrt内の変数はdouble型とあったので(double)b*bとしてみたものの上手くいきませんでした。
回答: 1 sqrt関数は負数に対応していないので条件分岐が必要。 2 二次方程式の解の公式のうち、分母がおかしい。2*a→(2*a)