一副牌中发五张扑克牌给你:让你判断数字的组成:
有以下几种情况:
1 :四条:即四张一样数值的牌(牌均不论花色)
2:三条带一对
3:三条带两张不相同数值的牌
4:两对
5:顺子 包括 10,J,Q,K,A
6:什么都不是
7:只有一对
for(int j=0;j<4-i;j++)
{ b[i]=a[i];}
}
有以下几种情况:
1 :四条:即四张一样数值的牌(牌均不论花色)
2:三条带一对
3:三条带两张不相同数值的牌
4:两对
5:顺子
6:什么都不是
7:只有一对
#include
using namespace std;
void sort(int a[]) //冒泡排序
{ int temp;
for(int i=0;i<5;i++)
if(a[j+1]
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
}
void test(int a[])
{ int *b=new int[5];
int k=1;//k表示有多少个两两相等的数字,即k-1表示对数。
sort(a);
for(int i=0;i<5;i++)
if((b[4]==13&&b[3]==12&&b[2]==11&&b[1]==10&&b[0]==1))
{
cout<<"顺子"<<endl;
return;
}
for(int j=0;j<4;j++)
if(a[j]==a[j+1])
k++;
if(k>4)
{
cout<<"输入错误"<<endl;
}
if(k==4){
if(b[1]==b[3])
{cout<<"四条"<<endl;
return;}
else
{ cout<<"三条带一对"<<endl;
return;
}
}
if(k==3){
if(b[0]==b[1]&&b[1]==b[2]||b[1]==b[2]&&b[2]==b[3]||b[2]==b[3]&&b[3]==b[4])
{ cout<<"三条带两个不同的牌"<<endl;
return;}
else
{cout<<"两对"<<endl;
return;}
}
if(k==2)
{
cout<<"一对"<<endl;
return;
}
if(k==1){
if(b[4]-b[0]==4&&b[4]-b[1]==3&&b[4]-b[2]==2&&b[4]-b[3]==1)
{
cout<<"顺子"<<endl;
return;
}
else
{
cout<<"什么都不是"<<endl;
return;
}
}
int main()
{ int a[]={1,2,1,2,1};
test(a);
return 0;
}