1. 程式人生 > 其它 >C語言:求解一元二次方程

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("無解"); }