```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那些已经定义,扑克花符)

条件不能这样写,要用&&,参考:
if (0<=cards[k]<=12)
改为
if (0<=cards[k] && cards[k]<=12)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!