|
编译不了的原因是你把sqrt写成了sprt
d > 0的时候是两个实根, d == 0的时候是一个实根(或者说两实根相等)
另外这种地方明显要用double,你基本上是用不到float的
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- double a,b,c,d;
- printf("请输入一元二次方程的系数a,b,c:\n");
- scanf("%lf%lf%lf",&a,&b,&c);
- d=b*b-4*a*c;
- if(d<0)
- {
- printf("该方程无解\n");
- }
- else if(d==0)
- {
- printf("该方程只有一个解x=%f\n",-b/(2*a));
- }
- else
- {
- printf("x1=%f\n",(-b+sqrt(d))/(2*a));
- printf("x2=%f\n",(-b-sqrt(d))/(2*a));
- }
- printf("%f",d);
- system("pause");
- return 0;
- }
复制代码 |
|