C语言:求解一元二次方程
#include <stdio.h> #include <math.h> void fc(float a,float b,float c); void fca(float a,float b,float c); main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); fca(a,b,c); } void fc(float a,float b,float c) { float x1,x2,pb; if(a==0) { if(b==0) { if(c==0)printf("任意解。"); else printf("无解。"); } else { if(c!=0) { x1=-c/b; printf("x=%.2f",x1); } else printf("x=0"); } } else { pb=b*b-4*a*c; if(pb<0) printf("无解。"); else { if(pb==0) { x1=x2=(-b+sqrt(pb))/2/a; printf("x1=x2=%f",x1,x2); } else { x1=(-b+sqrt(pb))/2/a; x2=(-b-sqrt(pb))/2/a; printf("x1=%.2f,x2=%.2f",x1,x2); } } } } void fca(float a,float b,float c) { float x1,x2,pb,x; pb=b*b-4*a*c; if(a==0 && b==0 && c==0) printf("任意解"); else if(a==0 && b==0 &&c!=0) printf("无解") ; else if(a==0 && b!=0) x=-c/b,printf("x=%f",x); else if(a!=0 && pb>0) x1=(-b+sqrt(pb))/2/a, x2=(-b-sqrt(pb))/2/a,printf("x1=%.2f,x2=%.2f",x1,x2); else if(a!=0 && pb==0) x1=x2=(-b+sqrt(pb))/2/a, printf("x1=x2=%f",x1,x2); else printf("无解"); }