Error c2181没有匹配if的非法else!

unswimmingfish 2015-07-04 11:29:07
请问大神,为什么总是会有这个error c2181报警?我感觉似乎程序没错啊??
是不是Visual studio 2012对于C有什么语法要求?
谢谢!
...全文
1511 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-07-06
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
赵4老师 2015-07-06
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
unswimmingfish 2015-07-05
  • 打赏
  • 举报
回复
弱弱的问一下,自己发出的帖子可以编辑吗??
unswimmingfish 2015-07-05
  • 打赏
  • 举报
回复
#include<stdio.h> int main ( ) { float score=0; printf ("请输入你的考试分数:\n"); scanf("%f",&score); if(score>100) { printf("输入错误\n"); } else if (score>80) { printf("优秀!\n"); } else if(score>60) { printf("及格!\n"); } else if(score>=0) { printf("不及格!\n"); } else printf("输入错误\n"); return(0); } 这回倒是scanf报警了!!
unswimmingfish 2015-07-05
  • 打赏
  • 举报
回复
#include<stdio.h> int main ( ) { float score=0; printf ("请输入你的考试分数:\n"); scanf("%f",&score); if(score>100) { printf("输入错误\n"); } else if (score>80) { printf("优秀!\n"); } else if(score>60) { printf("及格!\n"); } else if(score>=0) { printf("不及格!\n"); } else printf("输入错误\n"); return(0); } //这样是否好些?
brookmill 2015-07-05
  • 打赏
  • 举报
回复
这段代码里的括号有好几个都是中文的,左右半边的都有,楼主自己找出来改成英文的应该就好了。仔细看,字体还是有区别的。 中文括号() 英文括号()
unswimmingfish 2015-07-04
  • 打赏
  • 举报
回复
#include<stdio.h> int main ( ) { float score=0; printf ("请输入你的考试分数:\n"); scanf("%f",&score); if(score>100) { printf("输入错误\n"); } else if (score<=100 && score>80) { printf("优秀!\n"); } else if(score<=80 && score>60) { printf("及格!\n"); } else if(score<=60 && score>=0) { printf("不及格!\n"); } else printf("输入错误\n"); return(0);
brookmill 2015-07-04
  • 打赏
  • 举报
回复
if (score > 100) ... else if (score <= 100 && score > 80) // 这里的score <= 100可以去掉,因为前一个if的作用,执行到这里的前提就是score<=100,所以没必要再判断一次。score<=80的也一样。 最后一个score<=60,应该改成score>=0
brookmill 2015-07-04
  • 打赏
  • 举报
回复
目测看不出错误,建议楼主仔细检查一下括号之类的有没有中文符号,或者把代码原样复制过来看看。
707wk 2015-07-04
  • 打赏
  • 举报
回复
没看出问题在哪

69,371

社区成员

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

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