7.求一元二次方程的根
根据下面给出的求根公式,计算并输出一元二次方程的两个实根,要求精确到小数点后4位。程序中所有浮点数的数据类型均为float.
#include <stdio.h>
#include <math.h>
int main()
{
//a*x^2+b*x+c=0
float a,b,c;
float delta;
float x1,x2;
float x;
float m,n;
char i;
printf("请输入a,b,c:");
scanf("%f%f%f",&a,&b,&c);
i='i';
if(a==0)
{
printf("这不是一个一元二次方程\n");
x=(-c)/b;
printf("%.1f",x);
}
else if(a!=0)
{
delta=b*b-4*a*c;
if(delta>=0)
{
delta=sqrt(delta);
x1=-b/(2.0*a)+delta/(2.0*a);
x2=-b/(2.0*a)-delta/(2.0*a);
printf("x1=%.1f,x2=%.1f",x1,x2);
}
else if(delta<0)
{
delta=sqrt(-delta);
m=-b/(2.0*a);
n=delta/(2.0*a);
printf("x1=%.1f+%c%.1f\n",m,i,n);
printf("x1=%.1f-%c%.1f",m,i,n);
}
}
return 0;
}