C语言 求ax2+bx+c=0方程的根

运行错误 ,请高手帮忙看看错哪了
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,d,x1,x2;
d=b*b-4*a*c;
printf("Please Enter 3 Numbers.\n");
scanf("%f,%f,%f",a,b,c);
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(d<0)
printf("该方程无实数解.");
else if(d=0)
printf("x1=%f.",x1);
else
printf("x1=%f.\nx2=%f\n",x1,x2);
}

第1个回答  2020-06-17
总结上面两位的说法:
#include
<stdio.h>
#include
<math.h>
void
main()
{
float
a,b,c,d,x1,x2;
(1)//////////////////////////////d=b*b-4*a*c;
printf("Please
Enter
3
Numbers.\n");
(2)/////////////////////////////scanf("%f,%f,%f",a,b,c);
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(double)(2*a);
//vc为确保精度,默认的都是double类型。
x2=(-b-sqrt(d))/(double)(2*a);
if(d<0)
printf("该方程无实数解.");
else
if(d=0)
printf("x1=%f.",x1);
else
printf("x1=%f.\nx2=%f\n",x1,x2);
}
我用VC6.0,可以运行。不知道对否,楼主再看看。
第2个回答  2019-11-29
总结上面两位的说法:
#include
#include
void
main()
{
float
a,b,c,d,x1,x2;
(1)//////////////////////////////d=b*b-4*a*c;
printf("Please
Enter
3
Numbers.\n");
(2)/////////////////////////////scanf("%f,%f,%f",a,b,c);
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(double)(2*a);
//vc为确保精度,默认的都是double类型。
x2=(-b-sqrt(d))/(double)(2*a);
if(d<0)
printf("该方程无实数解.");
else
if(d=0)
printf("x1=%f.",x1);
else
printf("x1=%f.\nx2=%f\n",x1,x2);
}
我用VC6.0,可以运行。不知道对否,楼主再看看。
第3个回答  2009-10-15
scanf("%f,%f,%f",a,b,c);
改成
scanf("%f,%f,%f",&a,&b,&c);
第4个回答  2009-10-14
float a,b,c,d,x1,x2;
d=b*b-4*a*c; //你这有a,b,c的值吗?
printf("Please Enter 3 Numbers.\n");
scanf("%f,%f,%f",a,b,c);
d=b*b-4*a*c; //从这加吧!!

if(d<0)
printf("该方程无实数解.");
else if(d=0)
{ x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f.",x1);}
else{x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f.\nx2=%f\n",x1,x2);}
相似回答