麻烦大神帮我看一下是不是我的代码写错了
运行出来的结果总是-4.999…
题主思路是有的,就是可能没有考虑全面,if后直接else是不对的,因为分三种情况
可看一下下面代码的实现:
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,dis,x1,x2;
printf("请输入a,b,c的值: ");
scanf("%f %f %f",&a,&b,&c);
dis=b*b-4*a*c;
if(dis<0)
{
printf("该函数无实根。\n");
return 0;
}
else if(dis==0)
{
x1=x2=(-b)/(a*a);
printf("该函数有两个相等的实根:\n");
}
else
{
x1=(-b+sqrt(dis))/(2*a);
x2=(-b-sqrt(dis))/(2*a);
printf("该函数有两个不等的实根:");
}
printf("x1=%f x2=%f\n",x1,x2);
return 0;
}
运行结果: