黑马程序员技术交流社区

标题: 学习成绩问题!!! [打印本页]

作者: aofex    时间: 2015-6-24 22:08
标题: 学习成绩问题!!!
#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行老是报错啊??新手  勿笑啊!!!
作者: 18678927239    时间: 2015-6-24 22:22
大于等于60也包含了大于90的情况
作者: aSmallStone    时间: 2015-6-24 22:58
你的第一个if后面的分号去掉  亲测。。。。。 无语
作者: 弹剑    时间: 2015-6-24 23:19
你确定是22行而不是第一个IF末尾的分号么。。。
作者: cxl19900517    时间: 2015-6-24 23:21
好像是考试题吧。。。
作者: zhangshuai    时间: 2015-6-27 11:30
   第一 if  后面";" 去掉 ,还有>90也大于 60
作者: Residual_mem    时间: 2015-6-27 11:36
对。把分号去掉。加上分号相当于是后面添加了一个空语句。即使条件成立也不会继续。
作者: mazhichao    时间: 2015-6-27 12:31
if(score >=90 );分号错了
作者: 精灵来了    时间: 2015-6-27 12:39
分号,不解释了
作者: aofex    时间: 2015-6-28 20:44
aSmallStone 发表于 2015-6-24 22:58
你的第一个if后面的分号去掉  亲测。。。。。 无语

我擦  已经是第N回这种错误了
作者: αメ炫    时间: 2015-6-28 21:00
的确是22行报错
  if(score >=90 ); //这是一个空语句,一个分号也是一条语句这是正确的不会报错

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

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


以上我从程序的角度解释了为什么是22行报错
作者: heyuze    时间: 2015-6-28 21:17
楼上说得很好~
作者: lixianzhu0712    时间: 2015-6-29 11:30
if(score >=90 );分号错了
作者: 盖世英雄199001    时间: 2015-6-29 16:01
if(score >=90 );分号
作者: why19910522    时间: 2015-6-29 17:54
将“if(score >=90 );”最后的分号去掉,如果加上的话,就是if语句已经结束,后面的else if无法读取前面的if语句,无法构成if...else if语句,
作者: chensc    时间: 2015-6-29 19:04
学习学习!
作者: 深蓝的蓝    时间: 2015-6-30 23:04
哈哈  认真学习的同学果然多
作者: zilin    时间: 2015-6-30 23:14
你多打了一个分号,if后面加了分号就是语句结束不再执行了。
作者: 赵云18235802528    时间: 2015-7-1 07:16
学习学习了
作者: 弥修斯    时间: 2015-7-1 11:53
11楼好详细
作者: chensc    时间: 2015-7-1 18:54
学习学习!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2