这个c语言程序为什么总是出现error C2181: illegal else without matching if这个错误,到底是什么意思?

#include<stdio.h>#include<stdlib.h>intmain(){intn,i,j,k,a[100],max;scanf("%d",&n);for... #include<stdio.h>
#include <stdlib.h>
int main()
{
int n,i,j,k,a[100],max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{ if(i==0&&j==1);
max=abs(a[i]-a[j]);

else
{ k=abs(a[i]-a[j]);
if(k>max)
{max=k;
}
}
}
}
printf("%d",max);
}
展开
 我来答
帐号已注销
2019-12-03 · TA获得超过318个赞
知道小有建树答主
回答量:345
采纳率:90%
帮助的人:87.2万
展开全部

if(i==0&&j==1);

            max=abs(a[i]-a[j]);

这条if语句后面多了一个分号,使得这条if语句与同它匹配的else语句之间多了一条语句:“max=abs(a[i]-a[j]);”。

这样就不符合C语言语法了,所以编译器报错说:else没有与之对应的if(因为中间隔了一条语句)。

即便if或else后只有一条语句,也用{}扩起来,是一个好的编程习惯。这样容易发现错误。

匿名用户
2019-12-03
展开全部
该有 的 括号 分号;不能少

不该有的 括号 分号; 不能有

第一个 if 后面 都有 分号 ; 本if 句结束,后面的 else 当然 就没有 配对的 if

毛躁,急功近利 不行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT圈新鲜事
2019-12-03 · 记录IT技术领域中的新鲜事
IT圈新鲜事
采纳数:1722 获赞数:11350

向TA提问 私信TA
展开全部
printf上面多了一个大括号“}”,导致括号不匹配出现的问题。括号一般都是一对一对配合这输入的,不要单个单个输入,否则就很容易出错,而且还不好找。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哈哈哈dxwM
2019-12-03 · TA获得超过114个赞
知道小有建树答主
回答量:375
采纳率:72%
帮助的人:78.5万
展开全部
Max那里的if,{}用的不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式