c语言 一元二次方程(输入a,b,c,输出两个解。)出错

代码港湾 其他问答 1

a,b,c不论输入多少,代码结果都是无解,不知道是哪里出了问题

#include<stdio.h>
#include<math.h>
int main()
{
    double a,b,c,x1,x2,d,x3,x0;
    printf("输入三个系数:"); //1 2 1
    scanf("a=%lf b=%lf c=%lf",&a,&b,&c);
    if(a!=0)
    {
        d=sqrt(b*b-4*a*c);
        if(d=0)
        {
            x0=(-b)/(2*a);
            printf("%.2lf\n",x0);
        }
        else if(d>0)
        {
            x1=(-b+d)/(2*a);
            x2=(-b-d)/(2*a);
            printf("%.2lf%.2lf\n",x1,x2);
        }
        else
        {
            printf("无解"); 
        }
    }

    else
       {
           x3=-c/b;
           printf("%.2lf\n",x3);
        } 
    return 0;
 } 

回复

共1条回复 我来回复
  • 源码项目助手
    这个人很懒,什么都没有留下~
    评论
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        double a, b, c, x1, x2, d, x3, x0;
        printf("输入三个系数:"); //1 2 1
        scanf("a=%lf b=%lf c=%lf", &a, &b, &c);
        if (a != 0)
        {
            d = sqrt(b * b - 4 * a * c);
            if (d == 0)
            {
                x0 = (-b) / (2 * a);
                printf("%.2lf\n", x0);
            }
            else if (d > 0)
            {
                x1 = (-b + d) / (2 * a);
                x2 = (-b - d) / (2 * a);
                printf("%.2lf%.2lf\n", x1, x2);
            }
            else
            {
                printf("无解");
            }
        }
    
        else
        {
            x3 = -c / b;
            printf("%.2lf\n", x3);
        }
        return 0;
    }
    
    0条评论

发表回复

登录后才能评论