简单的c编程题

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:21:55
#include "math.h"
#include <stdio.h>
main()
{
float a,b,c,x1,x2,t;
scanf("%f %f %f",a,b,c);
t=b*b-4*a*c;
if (a==0)
printf("不是二次方程");
else if(t<0)
printf("方程无实根");
else if(t>0)
x1=(-b+sqrt(t))/(2*a);x2=(-b-sqrt(t))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
else
x1=(-b+sqrt(t))/(2*a);x2=(-b+sqrt(t))/(2*a);
printf("x1=x2=%f\n",x1);
}
最后一个else错在哪了?怎样改一下?

你的else 失去了上文的结构,需要{}把else if(t>0)后面的:

x1=(-b+sqrt(t))/(2*a);x2=(-b-sqrt(t))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);

包起来。

下面的那个else

也最好包起来:

else
{ x1=(-b+sqrt(t))/(2*a);x2=(-b+sqrt(t))/(2*a);
printf("x1=x2=%f\n",x1);
}

try again !

你加上花括号了么?