A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aofex 中级黑马   /  2015-6-24 22:08  /  2056 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main ()
{

    int score;


    printf("请输入分数 \n");
    scanf("%d",&score);

   
    if(score >=90 );
    {
        printf("您的成绩是'A'");
    }
22         else if (score>=60)
    {
        printf("您的成绩是'B'");
    }
    else
    {
        printf("您的成绩是'C'");
    }

    return 0;
}
问题:怎么22行老是报错啊??新手  勿笑啊!!!

20 个回复

倒序浏览
大于等于60也包含了大于90的情况
回复 使用道具 举报
你的第一个if后面的分号去掉  亲测。。。。。 无语
回复 使用道具 举报
你确定是22行而不是第一个IF末尾的分号么。。。
回复 使用道具 举报
好像是考试题吧。。。
回复 使用道具 举报
   第一 if  后面";" 去掉 ,还有>90也大于 60
回复 使用道具 举报
对。把分号去掉。加上分号相当于是后面添加了一个空语句。即使条件成立也不会继续。
回复 使用道具 举报
if(score >=90 );分号错了
回复 使用道具 举报
分号,不解释了
回复 使用道具 举报
aofex 中级黑马 2015-6-28 20:44:22
10#
aSmallStone 发表于 2015-6-24 22:58
你的第一个if后面的分号去掉  亲测。。。。。 无语

我擦  已经是第N回这种错误了
回复 使用道具 举报
的确是22行报错
  if(score >=90 ); //这是一个空语句,一个分号也是一条语句这是正确的不会报错

//下面这是个代码块 也能正常执行
    {
        printf("您的成绩是'A'");
    }

//这里有个悬空else,找不到自己所属if报错,要不报错 可以1.把上面代码块删掉 你会发现不报错了 2.或者把这个else去掉
else if (score>=60)
{
}


以上我从程序的角度解释了为什么是22行报错
回复 使用道具 举报
楼上说得很好~
回复 使用道具 举报
if(score >=90 );分号错了
回复 使用道具 举报
if(score >=90 );分号
回复 使用道具 举报
将“if(score >=90 );”最后的分号去掉,如果加上的话,就是if语句已经结束,后面的else if无法读取前面的if语句,无法构成if...else if语句,
回复 使用道具 举报
学习学习!
回复 使用道具 举报
哈哈  认真学习的同学果然多
回复 使用道具 举报
zilin 中级黑马 2015-6-30 23:14:25
18#
你多打了一个分号,if后面加了分号就是语句结束不再执行了。
回复 使用道具 举报
赵云18235802528 来自手机 中级黑马 2015-7-1 07:16:04
19#
学习学习了
回复 使用道具 举报
11楼好详细
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马