判断5张扑克牌是不是顺子,其中,大小王可以充当任何数。
#include<stdio.h>
#include<string.h>
#define N 100
//判断5张扑克牌是不是顺子,其中,大小王可以充当任何数。
int main(){
//假设大小王用0来充当J充当11Q充当12K充当13
int a[5];
for(int i=0;i<5;i++){
scanf("%d",&a[i]);
}
//统计大小王0的个数
int n=0,m=0;
while(n<5){
if(a[n]==0){
m++;//m为0的个数
}
n++;
}
//排序
for(int j=0;j<5;j++){
for(int k=j;k<5;k++){
int temp;
if(a[j]>a[k]){
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
switch(m){
case 0:{
int count=0;
for(int i=0;i<5-1;i++){
if(a[i]+1==a[i+1]){
continue;
}else{
count++;
}
}
if(count==0){
printf("可以构成顺子");
}else{
printf("不能构成顺子");
}
break;
}
case 1:{
int count1=0;
for(int i=1;i<5-1;i++){
if(a[i]+1==a[i+1]){
continue;
}else{
count1++;
}
}
if(count1==1||count1==0){
printf("可以构成顺子");
}else{
printf("不能构成顺子");
}
break;
}
case 2:{
int count2=0;
for(int i=2;i<5-1;i++){
if(a[i]+1==a[i+1]){
continue;
}else{
count2++;
}
}
if(count2==2||count2==0||count2==1){
printf("可以构成顺子");
}else{
printf("不能构成顺子");
}
break;
}
}
}