那位大哥可以帮我解答C语言的问题,万分感情<详细>

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:16:27
main()
{ float a,b,c,d,x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>=0) x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
else printf("No root!\n");
}
我问的是,错在什么地方?用Turbo C运行时错误

你要问什么呢? 这个是求一元二次 的详细代码!
#include <stdio.h>
#include <math.h>
void main()
{
double a,b,c,x;
printf("本程序的功能是解方程: a*x*x + b*x + c = 0\n");
printf("请输入方程的三个参数:");
scanf("%lf %lf %lf",&a,&b,&c);
x=b*b-4*a*c;
if(x>0)
{
printf("有两个不相等的实数根\nx1=%5.2lf \nx2=%5.2lf\n",(-b+sqrt(x))/(2*a),(-b-sqrt(x))/(2*a));
}
else if(x==0)
{
printf("有两个相等的实数根\nx1=%5.2lf \nx2=%5.2lf\n",-b/(2*a),-b/(2*a));

}
else if(x<0)
{
printf("没有意义!\n");
}

}

晕注意代码缩进!把if里的3句用{}括起来就可以了
试试吧

main()
{ float a,b,c,d,x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>=0) {/*下面三个语句是d>=0时要同时做的,把他们括起来,就行了*/
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2); <