德州扑克问题 :一副牌中发五张扑克牌给你:让你判断数字的组成:有以下几种情况:1:四条:即四张一样数值的牌(牌均不论花色)2:三条带 一对3:三条带两张不相同数值的牌4:两对5:顺子

德州扑克问题 一副牌中发五张扑克牌给你:让你判断数字的组成:有以下几种情况:

1:四条:即四张一样数值的牌(牌均不论花色)2:三条带 一对

3:三条带两张不相同数值的牌

4:两对

5:顺子 包括 10,J,Q,K,A

6:什么都不是

7:只有一对

编程实现以上功能。

解析:

#include "stdio.h"

void sort(int data[], int n)

{

int temp = 0;

for (int i = 0; i < n; i++)

{

for (int j = i + 1; j < n; j++)

{

if (data[i] < data[j])

{

temp = data[i];

data[i] = data[j];

data[j] = temp;

}

}

}

}

void test(int a[], int len)

{

int *b = new int[len];

int count = 0;

bool temp = false;

for (int i = 0; i < len; i++)

{

b[i] = a[i];

}

sort(b, 5);

for (i = 0; i < len - 1; i++)

{

if (b[i] == b[i + 1])

count++;

}

switch (count)

{

case 0:

if (b[0] - b[4] == 4 && b[0] - b[3] == 3 && b[0] - b[2] == 2 && b[0] - b[1] == 1)

{

printf("顺子");

}

else

printf("什么都不是");

break;

case 1:

printf("只有一对");

break;

case 2:

for (i = 0; i < 3; i++)

{

if (b[i] == b[i + 2])

{

printf("三条带两张不相同数值的牌");

temp = true;

break;

}

}

if (!temp)

{

printf("两对");

}

break;

case 3:

if (b[1] == b[3])

printf("四条:即四张一样数值的牌");

else

printf("三条带一对");

break;

}

}

main()

{

int a[5] = {3, 3, 3, 3, 12};

test(a, 5);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春哥一号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值