求一元二次方程: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); } } }