错误提示 error C2181: illegal else without matching if,而且是最后一个else处错误,求高手解答

#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,x1,x2,dise;dise=b*b-4*a*c;pri... #include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,x1,x2,dise;
dise=b*b-4*a*c;
printf("input a b c:");
scanf("%f,%f,%f",&a,&b,&c);
if(a=0)
printf("该方程不是二元方程");
else
if(dise=0)
printf("有两个相等的实根");
else
if(dise>0)
x1=(-b+sqrt(dise))/2*a;
x2=(-b+sqrt(dise))/2*a;
printf("有两个不相等的实根,%f,%f",x1,x2);
else
if(dise<0)
printf("没有实根");
}
展开
 我来答
辣鸡1121
2019-07-08
知道答主
回答量:4
采纳率:0%
帮助的人:1.4万
展开全部
首先条件里面if(a==0),不是a=0,包括下面的dise,这是一个错误。
第二个错误是当条件语句下面有多条执行的语句需要用{}把这些语句包含进去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2019-07-08 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:402万
展开全部
#include<math.h>
int main()
{
double a, b, c, x1, x2, dise;
printf("input a b c:");
scanf("%lf%lf%lf", &a, &b, &c);
if (a == 0)
printf("该方程不是一元二次方程");
else
{
dise = b * b - 4 * a * c;
if (dise == 0)
printf("有两个相等的实根: %lf", -b / (2 * a));
else if (dise > 0)
{
x1 = (-b + sqrt(dise)) / (2 * a);
x2 = (-b - sqrt(dise)) / (2 * a);
printf("有两个不相等的实根: %lf, %lf", x1, x2);
}
else
printf("没有实根");
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皓月与苍穹
2019-07-08 · TA获得超过269个赞
知道小有建树答主
回答量:119
采纳率:78%
帮助的人:16.2万
展开全部
emmm……你倒数第二个if后面的几个语句(到下一个else之前)应该用{}括起来。
追答
if里判断的表达式也是个问题,要用两个=,但这个应该不会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式