作业帮 > 综合 > 作业

判断ax^2+bx+c=0方程有几个解,如果有解则解出.系数a,b,c由键盘输入.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/17 16:59:48
判断ax^2+bx+c=0方程有几个解,如果有解则解出.系数a,b,c由键盘输入.
我的编程如下
#include
main()
{
float a,b,c,x1,x2,p;
scanf("%f%f%f",&a,&b,&c);
p=b*b-4*a*c;
if (p>=0)
p=sqrt(b*b-4*a*c);
if (p>0)
{
x1=(-b-p)/2*a;
x2=(-b-p)/2*a;
printf("x1=%.2f,x2=%.2f",x1,x2);
else x1=-b/2*a;
printf("x1=x2=%.2f",x1);
}
else printf("No answer");
}
为何程序说我的第一个else是Midplaced else in function main?
判断ax^2+bx+c=0方程有几个解,如果有解则解出.系数a,b,c由键盘输入.
修改之后的代码如下:
#include
main()
{
float a,b,c,x1,x2,p;
scanf("%f%f%f",&a,&b,&c);
p=b*b-4*a*c;
if (p>=0)
{
p=sqrt(b*b-4*a*c);
if (p>0)
{
x1=(-b-p)/2*a;
x2=(-b-p)/2*a;
printf("x1=%.2f,x2=%.2f",x1,x2);
}
else x1=-b/2*a;
printf("x1=x2=%.2f",x1);
}
else printf("No answer");
}
你的第一个else是在if的里面,所以会出现你所描述的错误.建议你在编程的时候,注意格式的标准化,减少错误的发生.