求一元二次方程:ax2+bx+c=0 的根。 输入三个实数a,b,c的值,且a不等于0。
#include<stdio.h> #include<math.h> int main() { printf("请输入a,b,c\n"); float a, b, c, t, p, q, x1, x2; scanf_s("%f%f%f", &a, &b, &c); if (a == 0) printf("不是一元二次方程"); else { t = b * b - 4 * a * c; if (t >= 0) { /*求实根*/ x1 = (-b + sqrt(t)) / (2 * a); x2 = (-b - sqrt(t)) / (2 * a); printf("有实根为\n"); printf("x1=%f\nx2=%f\n",x1,x2); } else { p = (-b) / (2 * a);/*求实部*/ q = sqrt(-t) / (2 * a);/*求虚部*/ printf("有虚根为\n"); printf("%f+%f i\n", p, q); printf("%f-%f i\n", p, q); } } }