#include<stdio.h>
#include<math.h> //调用了数学函数sqrt
int main()
{double a,b,c,disc,x1,x2,p,q; //disc是判别式bb-4ac
scanf("%1f%1f%1f",&a,&b,&c); //输入双精度浮点型变量的值要用格式声明“%1f”
disc=bb-4ac;
if(disc<0) //若 bb-4ac<0
printf(" this equation hasn't real roots\n"); //输出“此方程无实根 ”
else //若 b*b-4*a*c>0
{p=-b/(2.0a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q; //求出方程的两个根
printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2); //输出方程的两个根
}
return 0;
}
帮你写了一个,望采纳
#include<stdio.h>
#include<math.h>
int main()
{
float a, b, c, x1, x2;
scanf("%f %f %f", &a, &b, &c);
if (b*b - 4 * a*c < 0)//判断方程无实根
{
printf("this equation hasn't real roots\n");
}
else//有解
{
x1 = (-b + sqrt(b * b - 4 * a*c)) / (2 * a);
x2 = (-b - sqrt(b * b - 4 * a*c)) / (2 * a);
printf("real roots:\nx1=%7.2f\nx2=%7.2f\n", x1, x2);
}
return 0;
}
格式有点乱,而且你这多处省略乘号*是不能运行的,定义的double类型lf,输入输出你用的都是float的f,特别是输入你用1f而不是lf,问题有点多