1.6一元二次方程求解

mac2026-08-16  1

简单版

#include<stdio.h> #include<math.h> int main() { float d,x1,x2,a,b,c; printf("Please enter the three coefficients of the equation\n"); scanf("%f %f %f",&a,&b,&c); if(a==0)//判断是不是一个二次方程 { printf("This is not a quadratic equation\n"); } else { d=b*b-4*a*c; if(d>=0)//判断有无实数解 { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("x1=%4.3f,x2=%4.3f",x1,x2); } else printf("The equation has no real solution\n"); } return 0; }

加强版

#include<stdio.h> #include<math.h> int main() { double a,b,c,disc,x1,x2,realpart,imagpart; printf("Please enter the three coefficients of the equation\n"); scanf("%lf %lf %lf",&a,&b,&c); if(fabs(a)<=1e-6) printf("This is not a quadratic equation\n"); else { disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("This equation has two equal real roots %5.3f\n",-b/(2*a)); else if(fabs(disc)>1e-6) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("This equation has two unequal real roots x1=%5.3f,x2=%5.3f\n",x1,x2); } else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("This equation has two imaginary roots\n"); printf("%5.3f+%5.3fi\n",realpart,imagpart); printf("%5.3f-%5.3fi\n",realpart,imagpart); } } return 0; }
最新回复(0)