简单的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错在哪了?怎样改一下?
#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 !
你加上花括号了么?