jlHe233 2022-03-06 23:50 采纳率: 88.6%
浏览 22
已结题

为什么在loop里面只执行第一个if语句




```int main()
{
    int cards[5];
   int n;
    cin>>n;
    srand(n);
    for (int i=0;i<5;i++)
    {
        cards[i]=rand()%52;
    }
    

    
    string num[5];
    for (int k=0;k<5;k++)
    {   
        cout<<cards[k]<<endl;
        if (0<=cards[k]<=12) 
        {
            num[k]=charact(cards[k])+string(SPADE);
            cout<<'a'<<endl;
        }
        else if (13<=cards[k]<=25)
        {
            num[k]=charact(cards[k]-13)+string(HEART);
            cout<<'b'<<endl;
        }
        else if (26<=cards[k]<=38)
        {
            num[k]=charact(cards[k]-26)+string(CLUB);
            cout<<'c'<<endl;
        }
        else if (39<=cards[k]<=51)
        {
            num[k]=charact(cards[k]-39)+string(DIAMOND);
            cout<<'d'<<endl;
        }
        cout<<cards[k]<<endl;
    }
    
    for (int j=0;j<5;j++)
    {
        cout<<num[j]<<" ";
    }
}
为什么就算是23 他也只执行第一个if语句? (SPADE那些已经定义,扑克花符)

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/308976185646194.png "#left")
  • 写回答

2条回答 默认 最新

  • 关注

    条件不能这样写,要用&&,参考:

    if (0<=cards[k]<=12) 
    改为
    if (0<=cards[k] && cards[k]<=12) 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 创建了问题 3月6日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用