C语言为什么赋值以后,输出的值不变,求指教
C语言为什么赋值以后,输出的值不变,求指教
数据类型有误,考虑到结果会出现浮点型,就应该用浮点型来接收数据;
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;
}
这样试试
有帮助请采纳