默认是一元二次方程。
求解ax2+bx+c=0
时间限制1s
内存限制128MB
题目描述
一元二次方程ax2+bx+c=0,从键盘输入a、b、c的值后,计算并输出两个根的值,结果保留三位小数。(考虑delt>0、delt=0、delt<0三种情况)
输入
a b c
输出
x1=? x2=?
#include"stdio.h"
#include"math.h"
int main()
{
int a,b,c;
float delt,x1,x2;
scanf("%d %d %d",&a,&b,&c);
delt=1.0*b*b-4.0*a*c;
if(delt>=0) {x1=(-1.0*b+sqrt(delt))/(2.0*a),x2=(-1.0*b-sqrt(delt))/(2.0*a);
printf("x1=%.3f x2=%.3f\n",x1,x2);}
else {x1=(-1.0*b+sqrt(-delt))/(2.0*a),x2=(-1.0*b-sqrt(-delt))/(2.0*a);
printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",-1.0*b/(2.0*a),sqrt(-1.0*delt)/(2.0*a),-1.0*b/(2.0*a),sqrt(-1.0*delt)/(2.0*a));}
return 0;}
当delt小于0时,采用的是共轭复数来表示。