#include<stdio.h>#include<math.h>intmain(){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);}elseprintf("The equation has no real solution\n");}return0;}
加强版
#include<stdio.h>#include<math.h>intmain(){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));elseif(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);}}return0;}
#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)//...