首页 > 代码库 > 解一元二次方程【C】

解一元二次方程【C】

#include<stdio.h>
#include<math.h>
int main()
{
    double x1,x2,a,b,c;
    double delta;
    scanf("%lf%lf%lf",&a,&b,&c);
    delta=b*b-4*a*c;
    if(a==0)
    {
       if(b==0&&c==0)
       {
          printf("无限\n");
       }
       else {
               if(b==0&&c!=0)
            {
                printf("无解\n");
            }
            else{
                  if(b!=0&&c==0)
                {
                    printf("x=0\n");
                }
                else{
                      if(b!=0&&c!=0)
                    {
                        printf("x=%lf",c/b);
                    }
                }
            }
       }
    }
    else
      if(a!=0)
      {
          if(delta<0)
          {
            printf("无解\n");
        }
        else
        {
           if((-b+sqrt(delta))/(2*a)==(-b-sqrt(delta))/(2*a))
           {
               printf("x1=x2%lf",(-b-sqrt(delta))/(2*a));
              }
              else
              {
            printf("x1=%lf x2=%lf",(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a));
              }
        }
        }
    return 0;
}

解一元二次方程【C】