#include <stdio.h>
#include <math.h>
int QuadFormula(double a,double b,double c){
int check;
double det, abs_det, c1, c2, x1, x2;
det = b*b-4*a*c;
if (a==0){
//二次方程式ではない
check = 0;
if(b==0){
//一次方程式ではない
check = -2;
}
}else if (det < 0){
//虚数解をもつ
check = -1;
}else{
//二次方程式
check = 1;
}
if (check == -1){
abs_det = det*-1;
c1 = -1*b/2*a;
printf("解は%lf+i%lf, %lf-i%lf です。\n", c1
,c2
,c1
,c2
); }else if(check == -2){
printf("これはxを含む方程式ではありません。\n"); }else if(check == 0){
x1 = -1*c/b;
printf("この方程式は一次方程式で, x=%lf です。\n", x1
); }else if(check == 1){
x1
= (-1*b
+sqrt(det
))/2*a
; x2
= (-1*b
-sqrt(det
))/2*a
; if (det == 0){
printf("この方程式は重解を持つ二次方程式で, x1=x2=%lfです。\n", x1
); }else{
printf("この方程式は二次方程式で, x1=%lf, x2=%lfです。\n", x1
, x2
); }
}
return 0;
}
int main(void){
double a,b,c,x1,x2;
printf("ax^2+bx+c = 0の解を求めるプログラムです。\n");
QuadFormula(a,b,c);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgUXVhZEZvcm11bGEoZG91YmxlIGEsZG91YmxlIGIsZG91YmxlIGMpewoJaW50IGNoZWNrOwoJZG91YmxlIGRldCwgYWJzX2RldCwgYzEsIGMyLCB4MSwgeDI7CglkZXQgPSBiKmItNCphKmM7CglpZiAoYT09MCl7CgkJLy/kuozmrKHmlrnnqIvlvI/jgafjga/jgarjgYQKCQljaGVjayA9IDA7CgkJaWYoYj09MCl7CgkJCS8v5LiA5qyh5pa556iL5byP44Gn44Gv44Gq44GECgkJCWNoZWNrID0gLTI7CgkJfQoJfWVsc2UgaWYgKGRldCA8IDApewoJCS8v6Jma5pWw6Kej44KS44KC44GkCgkJY2hlY2sgPSAtMTsKCX1lbHNlewoJCS8v5LqM5qyh5pa556iL5byPCgkJY2hlY2sgPSAxOwoJfQoJCglpZiAoY2hlY2sgPT0gLTEpewoJCWFic19kZXQgPSBkZXQqLTE7CgkJcHJpbnRmKCLjgZPjga7mlrnnqIvlvI/jga/lrp/mlbDop6PjgpLmjIHjgaHjgb7jgZvjgpPjgIIiKTsKCQljMSA9IC0xKmIvMiphOwoJCWMyID0gc3FydChhYnNfZGV0KS8yKmE7CgkJcHJpbnRmKCLop6Pjga8lbGYraSVsZiwgJWxmLWklbGYg44Gn44GZ44CCXG4iLCBjMSxjMixjMSxjMik7Cgl9ZWxzZSBpZihjaGVjayA9PSAtMil7CgkJcHJpbnRmKCLjgZPjgozjga9444KS5ZCr44KA5pa556iL5byP44Gn44Gv44GC44KK44G+44Gb44KT44CCXG4iKTsKCX1lbHNlIGlmKGNoZWNrID09IDApewoJCXgxID0gLTEqYy9iOwoJCXByaW50Zigi44GT44Gu5pa556iL5byP44Gv5LiA5qyh5pa556iL5byP44GnLCB4PSVsZiDjgafjgZnjgIJcbiIsIHgxKTsKCX1lbHNlIGlmKGNoZWNrID09IDEpewoJCXgxID0gKC0xKmIrc3FydChkZXQpKS8yKmE7CgkJeDIgPSAoLTEqYi1zcXJ0KGRldCkpLzIqYTsKCQlpZiAoZGV0ID09IDApewoJCXByaW50Zigi44GT44Gu5pa556iL5byP44Gv6YeN6Kej44KS5oyB44Gk5LqM5qyh5pa556iL5byP44GnLCB4MT14Mj0lbGbjgafjgZnjgIJcbiIsIHgxKTsKCQl9ZWxzZXsKCQlwcmludGYoIuOBk+OBruaWueeoi+W8j+OBr+S6jOasoeaWueeoi+W8j+OBpywgeDE9JWxmLCB4Mj0lbGbjgafjgZnjgIJcbiIsIHgxLCB4Mik7CgkJfQoJfQoJcmV0dXJuIDA7Cn0KCmludCBtYWluKHZvaWQpewoJZG91YmxlIGEsYixjLHgxLHgyOwoJCgkKCXByaW50ZigiYXheMitieCtjID0gMOOBruino+OCkuaxguOCgeOCi+ODl+ODreOCsOODqeODoOOBp+OBmeOAglxuIik7CgkKCXByaW50ZigiXG5hPSIpOyBzY2FuZigiJWxmIiwgJmEpOwoJcHJpbnRmKCJcbmI9Iik7IHNjYW5mKCIlbGYiLCAmYik7CglwcmludGYoIlxuYz0iKTsgc2NhbmYoIiVsZiIsICZjKTsKCQoJUXVhZEZvcm11bGEoYSxiLGMpOwoJCglyZXR1cm4gMDsKfQ==