#include #include /*2次方程式の各係数から、解を求める関数*/ void answer(double a,double b,double c) { double Re1,Re2,Im1,Im2,D; D=b*b-4.0*a*c; //解の個数の判定に用いるD /*D>0なら異なる2つの実数解、D=0なら重複解、D<0なら異なる2つの虚数解*/ if(D>0) { Re1=(-b + sqrt(D))/(2.0*a); Re2=(-b - sqrt(D))/(2.0*a); Im1=0.0; Im2=0.0; } else if(D==0) { Re1=-b/(2.0*a); Im1=0.0; } else { Re1=Re2 =-b/(2.0*a); Im1=sqrt(-D)/(2.0*a); Im2=-Im1; } if(D==0) { printf("%f + i %f\n",Re1,Im1); } else { printf("%f + i %f\n",Re1,Im1); printf("%f + i %f\n",Re2,Im2); } } int main() { double a,b,c; /*各係数の値の入力処理*/ printf("a = \n"); scanf("%lf",&a); printf("b = \n"); scanf("%lf",&b); printf("c = \n"); scanf("%lf",&c); answer(a,b,c); //引数に係数の値を入れて関数を呼び出す return 0; }