error C2181: illegal else without matching if 执行 cl.exe 时出错. 编辑器说一个错误

#include <stdio.h>
#include <math.h>
int main(void)
{
int a=1;
int b=2;
int c=1;
int delta;
delta=b*b-4*a*c;
float x1,x2;
x1=(-b*b+sqrt(delta))/(2*a),x2=(b*b-sqrt(delta))/(2*a);
if ("delta>0,该函数有两个解")

printf ("x1,x2");
return 0;

else
if ("delta==0",该函数有两个相等的解)

printf ("x1,x2=x1");
return 0;

else

printf(" 该函数无解");
return 0;
return 0;
}

当if的子语句多于1行的时候需要用括号括起来,

而且你判断语句跟输出语句不正确,

正确代码:

#include <stdio.h>
#include <math.h>
int main(void)
{
int a = 1;
int b = 2;
int c = 1;
int delta;
delta = b*b - 4 * a*c;
float x1, x2;
x1 = (-b*b + sqrt(delta)) / (2 * a), x2 = (b*b - sqrt(delta)) / (2 * a);
if (delta > 0)
{
printf("该函数有两个解%f,%f", x1, x2);
return 0;
}
else if (delta == 0)
{
printf("该函数有两个相等的解x1,x2=%f", x1);
return 0;
}
else
printf("该函数无解");
return 0;
}

追问

不对,还是有一处错误

温馨提示:内容为网友见解,仅供参考
无其他回答

error C2181: illegal else without matching if 执行 cl.exe 时出...
当if的子语句多于1行的时候需要用括号括起来,而且你判断语句跟输出语句不正确,正确代码:include <stdio.h>#include <math.h>int main(void){int a = 1;int b = 2;int c = 1;int delta;delta = b*b - 4 * a*c;float x1, x2;x1 = (-b*b + sqrt(delta)) \/ (2 * a), ...

...error C2181: illegal else without matching if 我到底错在哪...
你第三个else if 后面多了一个;把它删除即可

error C2181: illegal else without matching if错误
提示应该是说你的else没有与之匹配的if。错误在于你的if表达式后出现的分号“;”,去掉它

...error C2181: illegal else without matching if这个错误,到底是什 ...
这样就不符合C语言语法了,所以编译器报错说:else没有与之对应的if(因为中间隔了一条语句)。即便if或else后只有一条语句,也用{}扩起来,是一个好的编程习惯。这样容易发现错误。

#C语言中的问题# error C2181: illegal else without matching if
错误提示为:else与if不匹配 判断if(b*b-4*a*c>0)时多加一个分号“;”表示一个语句了,后面的else成独立的了 所以说else不匹配if

...error C2181: illegal else without matching if
include<stdio.h> int main(){ float x;printf("请输入学生成绩:");scanf("%f",&x);while(x>100||x<0){ printf("输入数据有错,请重新输入:");scanf("%f",&x);} if(x>90)printf("成绩是%f,相应的等级是A",x);else if(x>80)printf("成绩是%f,相应的等级是B",x);else if(...

C++出现error C2181: illegal else without matching if
你的 C 语言源程序中有 6 个 if 语句,但是 else 语句却只有 4 个。C 语言编译器当然会出现 if 和 else 不匹配的提示信息了。至于说具体的详细源代码,到底是错在了那里,我也没有很多的时间帮你调试。这个就只能够靠你自己亲自上机在编程环境下面通过设置单步跟踪、以及相应的断点来进行调试了。

...error C2181: illegal else without matching if Error executing cl...
include<stdio.h>int main(){ int i,j,A,B,C,D,E; char text[3][80]; A=B=C=D=E=0; for(i=0;i<3;i++) { printf("please input line %d:\\n",i+1); gets(text[i]); for(j=0;j<80&&text[i][j]!='\\0';j++) { if('A'<text[...

c语言老是出现error C2181: illegal else without matching if
if((aa[i] % 1000) < (aa[j] % 1000));\/\/如果aa[i]的后三位数小于aa[j]的后三位数 else if((aa[i] % 1000) == (aa[j] % 1000));\/\/如果aa[i]的后三位等于aa[j]后三位 if(aa[i] > aa[j]);\/\/如果aa[i]的值大于aa[j]的值 这三行分别在行尾多了一个分号。

...error C2181: illegal else without matching if 么意思? 谢谢_百度...
检查下你写的if~else语句,你的语句有问题!你是写的嵌套吧?

相似回答