题目如下:
一副扑克有52张牌,打桥牌时应该把牌分配给四个人,请先设计程序模拟发牌的过程。
要求:黑桃用S(SPACES)表示;红桃用H(HEART)表示;方块用D(diamond)表示;梅花用C(CLUBS)表示;
问题分析:
按照打桥牌的规则,每人应该发到13张牌,在人工发牌时,应该先进行“洗牌”,再把牌按一定的顺序发给每一个人。为了方便计算机进行模拟,
可以将人工发牌的方式进行修改:先确定好发牌顺序,1,2,3,4,
将52张牌顺序编号,
黑桃2对应数字0,红桃2对应数字1,方块2对应2,梅花2对应3;
黑桃3对应数字4,红桃3对应数字5,方块3对用6,梅花3对应7;
。。。。。。
。。。。。。。
然后从52张牌中随机为每个人发牌;
此时可以使用c语言函数库中的随机函数产生1-51之间的数,来进行发牌的模拟;
程序如下:
#include <stdio.h>
#include <stdlib.h>
void p (int *b, char * n)
{
int i;
printf("\n\006");
for(i = 0; i < 13; i++)
{
if(b[i]/13 == 0)
{
printf("%c",n[b[i]%13]);
}
}
printf("\n\003");
for(i = 0; i < 13; i++)
{
if(b[i]/13 == 1)
{
printf("%c",n[b[i]%13]);
}
}
printf("\n\004");
for(i = 0; i < 13; i++)
{
if(b[i]/13 == 2)
{
printf("%c",n[b[i]%13]);
}
}
printf("\n\005");
for(i = 0; i ,