C语言为什么赋值以后输出值不变

C语言为什么赋值以后,输出的值不变,求指教
C语言为什么赋值以后,输出的值不变,求指教

img

数据类型有误,考虑到结果会出现浮点型,就应该用浮点型来接收数据;
scanf的格式有误,整型应该%d。

#include <stdio.h>
#include <math.h> 

int main()
{
    double a,b,c,g,x1,x2;
    printf("请输入三个系数a,b,c\n");
    scanf("%lf %lf %lf",&a,&b,&c);
    
    x1 = (-b+sqrt(b*b-4*a*c))/(2*a);
    x2 = (-b-sqrt(b*b-4*a*c))/(2*a);
    
    g = b*b - 4*a*c;
    
    if(g<0)
    {
        printf("这个一元二次方程无解\n");
    }
    else 
    {
        printf("这个方程的根为 %g 和 %g \n",x1,x2);
    }
    
    return 0;
}

这样试试
有帮助请采纳