623738576 发表于 2020-4-25 15:38:15

c语言if条件语句不知道哪儿错了

#include<stdio.h>
int main()
{

      float score,a;
      printf("请输入分数:");
      scanf("%f",&score);
      if(0>=score||score>=200){
                printf("请输入正确的分数\n");
                return 0;
                }
      else{
                if(180<=score){
                        printf("成绩为A\n");
                }
                if(120<=score<180){
                        printf("成绩为B\n");
                }
                if(score<120)printf("sadfdsfsdafadsfdsafdfaf\n");
      }
}

输入190会输出成绩为B和成绩为A
编译器用的是gcc


sunrise085 发表于 2020-4-25 17:06:45

SugarCane88 发表于 2020-4-25 16:28
我分析您的代码发现几个问题:
1. a 没有被用到;
2. int main() 没有返回值;


你指出的第三点,不是不合适,而是本身写法就不对。
C语言中不能连着比较数的大小,这样会把前面的结果与后面的比较,
120<=score<180会先进行120<=score,其结果再和180进行比较,,而前面的比较结果为0或1,再与180 比较肯定为真啊,所以不管你输入多少,这个if判断都为真

SugarCane88 发表于 2020-4-25 16:28:36

我分析您的代码发现几个问题:
1. a 没有被用到;
2. int main() 没有返回值;
3. 120<=score<180 这样写不合适。

#include<stdio.h>

int main()
{

        float score;
    printf("请输入分数:");
    scanf("%f",&score);
    if(score<=0||score>=200){
      printf("请输入正确的分数\n");
      return 0;
      }
    else{
      if(score>=180){
            printf("成绩为A\n");
      }
      if(score>=120 && score<180){
            printf("成绩为B\n");
      }
      if(score<120)
                        printf("sadfdsfsdafadsfdsafdfaf\n");
    }
       
        return 0;
}

sunrise085 发表于 2020-4-25 17:09:05

分段完全可以直接if…else…何必多个if呢。
另外return 0直接写到最后面就行了。因为你的外层if…else…之后没有其他语句了。一个return就可以吧if和else两种情况都涵盖在内了
#include<stdio.h>
int main()
{

    float score,a;
    printf("请输入分数:");
    scanf("%f",&score);
    if(0>=score||score>=200){
      printf("请输入正确的分数\n");
    }
    else{
      if(180<=score){
            printf("成绩为A\n");
      }
      else if(120<=score){
            printf("成绩为B\n");
      }
      else
            printf("sadfdsfsdafadsfdsafdfaf\n");
    }
    return 0;
}

SugarCane88 发表于 2020-4-25 21:25:02

sunrise085 发表于 2020-4-25 17:09
分段完全可以直接if…else…何必多个if呢。
另外return 0直接写到最后面就行了。因为你的外层if…else…之 ...

您回答的详细,赞。
页: [1]
查看完整版本: c语言if条件语句不知道哪儿错了