求根公式,打不知道为神马输入a b c的之后就没反应了,软件也没报错

求根公式,打不知道为神马输入a b c的之后就没反应了,软件也没报错

#include 
#include 
void main()
{
    int a,b,c;
    float d,p,e;
    printf("请输入a b c 的值");
    scanf("%d %d %d",&a,&b,&c);
    d=b*b-4*a*c;
    p=-b/2*a;
    e=sqrt(d)/2*a;
    if(d>0)
    {
        printf("x1=%f x2=%f",p+e,p-e);
    }
    else if(d=0)
    {
        printf("x1=x2=%f",p-e);
    }
    else if(d<0)
    {
        printf("无解");
    }
}

  • p 和 e 都是float类型, 2 都改成 2.0
  • d=0 这是赋值,改成 d==0
#include <stdio.h>
#include <math.h>
void main()
{
    int a,b,c;
    float d,p,e;
    printf("请输入a b c 的值");
    scanf("%d %d %d",&a,&b,&c);
    d=b*b-4*a*c;
    p=-b/2.0*a;
    e=sqrt(d)/2.0*a;
    if(d>0)
    {
        printf("x1=%f x2=%f",p+e,p-e);
    }
    else if(d==0)
    {
        printf("x1=x2=%f",p-e);
    }
    else if(d<0)
    {
        printf("无解");
    }
}


试试👀

#include <stdio.h>
#include <math.h>
void main()
{
    int a,b,c;
    float d,p,e;
    printf("请输入a b c 的值"); // 提示用户输入 a, b, c 的值
    scanf("%d %d %d",&a,&b,&c); // 输入 a, b, c 的值
    d=b*b-4*a*c; // 计算二次方程的判别式
    p=-b/2*a; // 计算二次方程的解的一部分
    e=sqrt(d)/2*a; // 计算二次方程的解的一部分
    if(d>0) // 判断二次方程的解的情况
    {
        printf("x1=%f x2=%f",p+e,p-e); // 输出二次方程的解
    }
    else if(d==0) // 判断二次方程的解的情况
    {
        printf("x1=x2=%f",p-e); // 输出二次方程的解
    }
    else if(d<0) // 判断二次方程的解的情况
    {
        printf("无解"); // 输出无解
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^