题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include <stdio.h>
#include <math.h>
int main() {
float a,b,c;
while(scanf("%f %f %f",&a,&b,&c)!=EOF)
{
if(a==0)
{
printf("Not quadratic equation\n");
}
else
{
float flag = b*b-(4*a*c);
if(flag==0)
{
if(b==c&&c==0)//b和c任意一个为零,另一个也为零
{
printf("x1=x2=0.00\n");
}
else
{
printf("x1=x2=%.2f\n",-b/(2*a));//flag为0,不用再写
}
}
else if(flag>0)
{
float x1 = (-b-sqrt(flag))/(2.0*a);
float x2 = (-b+sqrt(flag))/(2.0*a);
printf("x1=%.2f;x2=%.2f",x1,x2);
}
else
{
float image = sqrt(-flag)/(2.0*a);
float real = -b/(2.0*a);
if(image<0)//注意x1虚部小于x2虚部系数
image = -image;
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/(2*a),image,-b/(2*a),image);
}
}
}
return 0;
}
查看19道真题和解析