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 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃