一个程序 求大神解答一下

qq_41679934 2018-01-28 07:41:48
include <stdio.h>
int main(void)
{ float a;
int b;
int c;
int d;
int e;
printf("请输入你的分数:");
scanf("%f", &a);

b = (a<=100) && (a>=85);
c = (a<85) && (a>=70);
d = (a<70) && (a>=60);
e = (a<60) && (a>=0);

if (b==1)
{
printf("优秀");
}
else if (c==1)
{
printf("良好");
}
else if ("d==1")
{
printf("及格");
}
else if ("e==1")
{
printf("补考");
}
else
{
printf("请重新输入");
}
return 0;

}
为什么我输入85~100显示的是“优秀” 70~85为”良好“ 然后无论输入多少都显示“及格”? 求大神指点
...全文
200 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2018-01-29
  • 打赏
  • 举报
回复
include <stdio.h>

int main(void)
{
    float a;
    int b;
    int c;
    int d;
    int e;
    printf("请输入你的分数:");
    scanf("%f", &a);

    b = (a<=100) && (a>=85);
    c = (a<85) && (a>=70);
    d = (a<70) && (a>=60);
    e = (a<60) && (a>=0);

    if (b==1)
    {
        printf("优秀");
    }
    else if (c==1)
    {
        printf("良好");
    }
    else if (d==1)
    {
        printf("及格");
    }
    else if (e==1)
    {
        printf("补考");
    }
    else
    {
        printf("请重新输入");
    }
    return 0;

}
判断表达式变成了字符串,去掉双引号即可。 另外,对于多个判断,建议使用switch case
大米粥哥哥 2018-01-28
  • 打赏
  • 举报
回复
楼上正解 你那个是一串字符串 if 恒为true
faihung 2018-01-28
  • 打赏
  • 举报
回复
else if ("d==1") else if ("e==1") ?? 你是复制粘贴的吧,条件判断没有“”的

69,382

社区成员

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

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