c语言基础,求一元二次方程的根

#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c;float d,f;
scanf("%f%f%f",&a,&b,&c);
if((pow(b,2)-4*a*c)>=0)
d=(pow(b*b-4*a*c,1/2)-b)/(2*a);
f=(pow(b*b-4*a*c,1/2)+b)/(2*a);
printf("x1=%d,x2=%d",d,f);
else
printf("函数无实数根\n");
return 0;
}
请帮忙修改,尽量贴合我的思路

第1个回答  2015-11-15
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c;float d,f;
scanf("%f%f%f",&a,&b,&c);
if((pow(b,2)-4*a*c)>=0)         
        {       //加上花括号
             d=(pow(b*b-4*a*c,1/2)-b)/(2*a);       
             f=(pow(b*b-4*a*c,1/2)+b)/(2*a);
     printf("x1=%d,x2=%d",d,f); 
         }
        else
    printf("函数无实数根\n");
return 0;   
}

第2个回答  推荐于2016-11-20

求根公式使用错误,另外少了大括号,加上即可

#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c; 
double d, f;
scanf("%lf%lf%lf", &a, &b, &c);
if ((pow(b, 2) - 4 * a*c) >= 0){
d = (pow(b*b - 4 * a*c, 1 / 2) - b) / (2 * a);
f = (-pow(b*b - 4 * a*c, 1 / 2) - b) / (2 * a);
printf("x1=%f,x2=%f\n", d, f);
}
else{
printf("函数无实数根\n");
}
return 0;
}

本回答被提问者采纳
相似回答
大家正在搜