前言:做一个随机发牌的C语言程序,供大家学习,思考。未做任何注释,有测试时候留下的一些输出语句,一遍方便测试。

 


 

#include<stdio.h> 

#include<stdlib.h> 

#include<time.h>

int main()

{

int a[60];

int b[60];

int w = 0;

int wi,wj,wii;

int i,j,index,x=0,m;

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

a[i]=i+1;

srand((unsigned)time(0));

for(i=0;i<54;)

{

index=rand()%54;

if(a[index]!=0)

{

b[i]=a[index];

//printf("%d ",b[i]);

a[index]=0;

++i;

}

}

printf("n说明:n");

printf("*******************n");

printf("**    红桃 %c    ",3);

printf("**n");

printf("**    方块 %c    ",4);

printf("**n");

printf("**    梅花 %c    ",5);

printf("**n");

printf("**    黑桃 %c    ",6);

printf("**n");

printf("**    大王 A    **n**    小王 a    **n");

printf("*******************n");

printf("n请输入打牌人数:n");

scanf("%d",&w);

wi = 54/w;

wj = 54%w;

//printf("%d,%d",wi,wj);

for (j = 0;j < w;j++)

{

m = 0;

printf("nn第%d个人的牌n",j+1);

wj --;

if (wj>=0)

wii = wi + 1;

else

wii = wi;

//红桃

printf("红桃 %c ",3);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=13&&b[i]>0)

{

m++;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//方块

printf("n方块 %c ",4);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=26&&b[i]>13)

{

m++;

 


 

b[i] = b[i]-13;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//梅花

printf("n梅花 %c ",5);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

 


 

if (b[i]<=39&&b[i]>26)

{

m++;

b[i] = b[i]-26;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//黑桃

printf("n黑桃 %c ",6);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=52&&b[i]>39)

{

m++;

b[i] = b[i]-39;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//大小王

printf("n大小王 A or a :");

for(i = j*wii;i<=(j+1)*wii;i++)

{

 

if (b[i]==53)

{

m++;

printf("A ");

}

if (b[i]==54)

{

m++;

printf("a ");

}

}

printf("n总共:%d张牌!!!",m);

}

}

测试结果,由于屏幕显示有限,我只做2个人分牌的测试,其他的自己测试吧

PS:
想查看更多资料请往加入我的企鹅群,更有免费开源项目和课程等你观看哦!

 


 
内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/maoju/p/13920164.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程