从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根 并保留两位小数
.#include <stdio.h> //使用printf,scanf函数
.#include <math.h> //使用sqrt(开平方)函数
int main()
{
float a, b, c; //定义浮点型变量,防止后续除法运算时,计算机截掉小数部分
float x1, x2;
while (scanf("%f %f %f", &a, &b, &c) != EOF) //循环判断本次输入是否结束,用于多行输入
{
float der = (b * b - 4 * a * c); //定义数学中德尔塔
if (a == 0)printf("Not quadratic equation"); //判断是否是一元二次方程
else {
if (der > 0) {
x1 = (-b) / (2 * a) - (sqrt(der) / (2 * a));
x2 = (-b) / (2 * a) + (sqrt(der) / (2 * a));
printf("x1=%.2f;x2=%.2f\n", x1, x2);
}
else if (der == 0) {
x1 = x2 = (-b) / (2 * a);
{
if (x1 == (-0.00)) {
printf("x1=x2=0.00\n");
}
else {
printf("x1=x2=%.2f\n", x1);
}
}
}
else if (der < 0) {
float s, y;
s = (-b) / (2 * a);
y = sqrt(-der) / (2 * a); //计算机无法对负数进行开平方运算
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", s, y, s, y); //输出时应手动添加数学意义上的虚部标识符‘i’
}
}
}
return 0;
}