鱼C论坛

 找回密码
 立即注册
查看: 4205|回复: 6

我是小新手 求解决

[复制链接]
发表于 2013-8-14 21:25:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 好人 于 2013-8-14 21:27 编辑

#include "stdio.h"
#pragma warning(disable : 4996)
void main()
{   
        int score;
        scanf("%d",&score);
        if(score<60)
        {
                printf("E");
        }
        else if(score>60||60==score&&score<70)
        {
                printf("D");
        }
        else if(score>70||70==score&&score<80)
        {
                printf("C");
        }
        else if(score>80||80==score&&score<90)
        {
                printf("B");
        }
        else
        {
                printf("A");
        }
}
程序有问题 不是我想的那样 大于70 就都显示d了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-14 21:33:30 | 显示全部楼层
估计是||和&&的优先级比==大,
你用括号吧
else if( (score>60)||(60==score)&&(score<70))
都这样改估计就可以了

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 21:36:31 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 21:40:05 | 显示全部楼层
友来友网 发表于 2013-8-14 21:33
估计是||和&&的优先级比==大,
你用括号吧
else if( (score>60)||(60==score)&&(score

是的  你说对了 大哥 谢谢你了 我错怪你了!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 21:42:31 | 显示全部楼层
这里面还有一个问题,
就是&&比||优先级高,自己好好想想
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 21:50:49 | 显示全部楼层
友来友网 发表于 2013-8-14 21:42
这里面还有一个问题,
就是&&比||优先级高,自己好好想想

#include "stdio.h"
#pragma warning(disable : 4996)
void main()
{   
        int score;
        scanf("%d",&score);
        if(score<0||score>100)
        {
                printf("error");
        }
        else if(score<60)
        {
                printf("E");
        }
        else if((score>60||60==score)&&score<70)
        {
                printf("D");
        }
        else if((score>70||70==score)&&score<80)
        {
                printf("C");
        }
        else if((score>80||80==score)&&score<90)
        {
                printf("B");
        }
        else
        {
                printf("A");
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-15 10:09:04 | 显示全部楼层
因为||运算的特点是 1||x==1 ,无论x是0还是1.所以只要||运算符前的表达式计算结果为1,就不管后面的啦
修改如下
if(score<60)
        {
                printf("E");
        }
        else if(/*score>60||60==score&&*/score<70)  //即把score>60||60==score&&去掉,以下类似
        {
                printf("D");
        }
        else if(/*score>70||70==score&&*/score<80)
        {
                printf("C");
        }
        else if(/*score>80||80==score&&*/score<90)
        {
                printf("B");
        }
        else
        {
                printf("A");
        }
上面的程序还没有区别score<0和score>100的情况。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-18 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表