没有匹配if的非法else

bobkns 2020-06-01 04:49:59
#include<stdio.h>
void main()
{
int score;
scanf_s("%d", &score);
if (score < 60)
{
printf("the score is E\n");
}
else if ((score > 60 || score == 60) && score < 70)
{
printf("the score is D\n");
}
else if ((score > 80 || score == 80) && score < 90);
{
printf("the score is C\n");
}
else if
((score > 90 || score == 90) && score < 100);
{
printf("the score is B\n");
}
}

为什么说最后一个else是没有匹配if的非法else,还说应输入一个语句
...全文
1846 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
千梦一生 2020-06-02
  • 打赏
  • 举报
回复
else if ((score > 80 || score == 80) && score < 90);//这里分号不能有
((score > 90 || score == 90) && score < 100);//这个分号建议也删了,不然结果可能不是你希望的
自信男孩 2020-06-02
  • 打赏
  • 举报
回复
分号多加了,去掉就不会有这样的编译error了。
chxchxkkk 2020-06-01
  • 打赏
  • 举报
回复
score > 60 || score == 60 和score >= 60 有区别吗
  • 打赏
  • 举报
回复
这一行末尾多了个分号。
else if ((score > 80 || score == 80) && score < 90);
simple 2020-06-01
  • 打赏
  • 举报
回复

#include<stdio.h>
void main()
{
int score;
scanf_s("%d", &score);
if (score < 60)
{
printf("the score is E\n");
}
else if ((score > 60 || score == 60) && score < 70)
{
printf("the score is D\n");
}
else if ((score > 80 || score == 80) && score < 90);  // 这个if后面不能有;
{
printf("the score is C\n");
}
else if ((score > 90 || score == 90) && score < 100);  // 这里有;,没问题,但下面{}里面的就没有控制了
{
printf("the score is B\n");
}
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧