C语言题求解

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:55:19
#include<stdio.h>
#include<math.h>
main()
{float a,b,c,d,x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(a==0) printf("x1=x2=%f",-c/b);
else
if(d>=0) x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);printf("x1=%f,x2=%f",x1,x2);
else
printf("error");
}
错在哪???

if(d>=0) x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);printf("x1=%f,x2=%f",x1,x2);
语句块要用{}
改成
if(d>=0)
{
x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}

既然有错麻烦把错误提示贴出来得吗
还有代码太难看,这是求一元二次方程的程序吧
scanf里的%f %f %f空一格出来好一点,输入数据的时候以空格为分界
if的代码块不管有一句还是多句都应加花括号