题解 | 计算一元二次方程
计算一元二次方程
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");
}
if(a != 0){
float delta = b * b - 4 * a * c;
float sb = - b / (2.0 * a);//实部
if(delta == 0){
if(sb == -0.00){//这里不知道为什么会通不过,所以要改一下
sb = 0.00;
}
printf("x1=x2=%.2f\n",sb);
}
if(delta > 0){
float xb = sqrt(delta) / (2.0 * a);//如果△大于0,根号下的“delta”为正
printf("x1=%.2f;x2=%.2f\n",sb - xb,sb + xb);
}
if(delta < 0){
float xb = sqrt(-delta) / (2.0 * a);//如果△小于0,根号下的“delta”为负
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",sb, xb, sb, xb);
}
}
}
return 0;
}