黑月黄龙 发表于 2021-10-17 13:32:58

程序问题

#include <stdio.h>

int main()
{
        float a;
        printf("请输入你的分数:");
        scanf("%f",&a);
       
        if(a>=90)
        {
                        printf("A\n");
        }
        else if(90>a>=80)
        {
                printf("B\n");
        }
        else if(80>a>=70)
        {
                        printf("C\n");
        }
        else if(70>a>=60)
        {
                        printf("D\n");
        }
        else
        {
                        printf("E\n");
        }
       
        return 0;
}

为啥打低于九十的数就只会出E

Gacy 发表于 2021-10-17 13:35:33

低于90的话,你写的其他if else都不会判断,直接到最后一个else,你自己再检查一下你的if 的范围

大马强 发表于 2021-10-17 14:05:16

判断式不能这样写,编译器读不懂

#include <stdio.h>

int main()
{
      float a;
      printf("请输入你的分数:");
      scanf("%f",&a);
      
      if(a>=90)
      {
            printf("A\n");
      }
      else if(90>a && a>=80)
      {
                printf("B\n");
      }
      else if(80>a&& a>=70)
      {
                        printf("C\n");
      }
      else if(70>a&& a>=60)
      {
                        printf("D\n");
      }
      else
      {
                        printf("E\n");
      }
      
      return 0;
}

傻眼貓咪 发表于 2021-10-17 14:16:53

#include <stdio.h>

int main(){
    int score;
    printf("请输入你的分数:");
    scanf("%d", &score);
    if(score >= 90) printf("A");
    else if(score >= 80) printf("B");
    else if(score >= 70) printf("C");
    else if(score >= 60) printf("D");
    else printf("E");
    return 0;
}

你知道吗我会 发表于 2021-10-17 14:32:03

电脑不在旁边。直接输出E,是因为关系运算符是双目运算符,用来比较2个运算量之间的关系,你一次比较了3个(a 80 90)所以后面的语句不能表达你想表达的取值范围,例如80-90之间要用(a>=80&&a<90)运用了一个逻辑与将两个方向的比较连接起来 可以再试着改一下程序哦
页: [1]
查看完整版本: 程序问题