题目描述
输入a、b、c,求一元二次方程ax2+bx+c=0的解。
输入
三个整数a、b、c。
输出
方程ax2+bx+c=0的解(保留两位精度),a=0则输出“This is not a quadratic equation”。
这一题较上一题难度有大范围的提升,解决一元二次方程的解要用到数学里面的求根公式,要用到sqrt函数,头文件要加上
代码:
#include#include //使用标准数学库函数 int main() { double a,b,c,m,x,y; scanf("%lf %lf %lf",&a,&b,&c); m=b*b-4*a*c; if(a==0) printf("This is not a quadratic equation");//a=0,不是一元二次方程 else { if(m>0) { m=sqrt(b*b-4*a*c); x=(-b+m)/(2*a);//求根公式的利用 y=(-b-m)/(2*a); printf("%.2lf %.2lf",x,y);//结果保留两位小数 } else if(m==0) { x=-b/(2*a); printf("%.2lf",x); } else { m=sqrt(4*a*c-b*b); x=-b/(2*a),y=m/(2*a);//x是虚数解的实部,y是虚数解的虚部 printf("%.2lf+%.2lfi %.2lf-%.2lfi",x,y,x,y); } } return 0; }



