c语言编程 自动发牌程序
答案:2 悬赏:0 手机版
解决时间 2021-04-05 09:53
- 提问者网友:暮烟疏雨之际
- 2021-04-04 11:46
c语言编程 自动发牌程序
最佳答案
- 五星知识达人网友:七十二街
- 2021-04-04 12:37
#include
#include
#include
typedef struct
{
int num; // A:1 , J:11 , Q:12 , K:13
int color; //黑1,红2,梅3,方4
}POKER;
void build(POKER* s) //生成扑克函数
{
int i,count=0,num,color;
while(count<52)
{
num=rand()%13+1;
color=rand()%4+1;
int flag_skip=0,flag_end=0;
for(i=0;i<52;i++)
{
if(s[i].num==num && s[i].color==color)
{
flag_skip=1;
break;
}
}
if(flag_skip==1)
{
continue;
}
while(1)
{
i=rand()%52;
if(s[i].num==0)
{
s[i].num=num;
s[i].color=color;
count++;
break;
}
else
{
continue;
}
}
}
}
void prt(POKER* s) //打印函数
{
int i;
for(i=0;i<52;i++)
{
if(i%13==0)
{
printf("
玩家%d : ",i/13+1);
}
switch(s[i].num)
{
case 1: putchar('A');break;
case 11: putchar('J');break;
case 12: putchar('Q');break;
case 13: putchar('K');break;
default: printf("%d",s[i].num);
}
switch(s[i].color)
{
case 1: putchar(6);break;
case 2: putchar(3);break;
case 3: putchar(5);break;
case 4: putchar(4);break;
default: printf(" ");
}
printf(" ");
}
}
int main()
{
POKER s[52]; //定义结构体数组变量
memset(s,0,sizeof(POKER)*52); //初始化数组
srand((unsigned)time(0)); //随机种子初始化
build(s); //随机生成扑克
prt(s); //打印
return 0;
}追问能不能不用结构体?追答还没学到结构体?追问是啊追答#include
#include
#include
//s数组--扑克点数 A:1 , J:11 , Q:12 , K:13
//s1数组--花色 黑1,红2,梅3,方4
void build(int* s, int* s1) //生成扑克函数
{
int i,count=0,num,color;
while(count<52)
{
num=rand()%13+1;
color=rand()%4+1;
int flag_skip=0,flag_end=0;
for(i=0;i<52;i++)
{
if(s[i]==num && s1[i]==color)
{
flag_skip=1;
break;
}
}
if(flag_skip==1)
{
continue;
}
while(1)
{
i=rand()%52;
if(s[i]==0)
{
s[i]=num;
s1[i]=color;
count++;
break;
}
else
{
continue;
}
}
}
}
void prt(int* s, int* s1) //打印函数
{
int i;
for(i=0;i<52;i++)
{
if(i%13==0)
{
printf("
玩家%d : ",i/13+1);
}
switch(s[i])
{
case 1: putchar('A');break;
case 11: putchar('J');break;
case 12: putchar('Q');break;
case 13: putchar('K');break;
default: printf("%d",s[i]);
}
switch(s1[i])
{
case 1: putchar(6);break;
case 2: putchar(3);break;
case 3: putchar(5);break;
case 4: putchar(4);break;
default: printf(" ");
}
printf(" ");
}
}
int main()
{
int s[52],s1[52]; //s数组存放数字,s1存放花色
memset(s,0,sizeof(int)*52); //初始化数组
memset(s1,0,sizeof(int)*52);
srand((unsigned)time(0)); //随机种子初始化
build(s,s1); //随机生成扑克
prt(s,s1); //打印
return 0;
}
#include
#include
typedef struct
{
int num; // A:1 , J:11 , Q:12 , K:13
int color; //黑1,红2,梅3,方4
}POKER;
void build(POKER* s) //生成扑克函数
{
int i,count=0,num,color;
while(count<52)
{
num=rand()%13+1;
color=rand()%4+1;
int flag_skip=0,flag_end=0;
for(i=0;i<52;i++)
{
if(s[i].num==num && s[i].color==color)
{
flag_skip=1;
break;
}
}
if(flag_skip==1)
{
continue;
}
while(1)
{
i=rand()%52;
if(s[i].num==0)
{
s[i].num=num;
s[i].color=color;
count++;
break;
}
else
{
continue;
}
}
}
}
void prt(POKER* s) //打印函数
{
int i;
for(i=0;i<52;i++)
{
if(i%13==0)
{
printf("
玩家%d : ",i/13+1);
}
switch(s[i].num)
{
case 1: putchar('A');break;
case 11: putchar('J');break;
case 12: putchar('Q');break;
case 13: putchar('K');break;
default: printf("%d",s[i].num);
}
switch(s[i].color)
{
case 1: putchar(6);break;
case 2: putchar(3);break;
case 3: putchar(5);break;
case 4: putchar(4);break;
default: printf(" ");
}
printf(" ");
}
}
int main()
{
POKER s[52]; //定义结构体数组变量
memset(s,0,sizeof(POKER)*52); //初始化数组
srand((unsigned)time(0)); //随机种子初始化
build(s); //随机生成扑克
prt(s); //打印
return 0;
}追问能不能不用结构体?追答还没学到结构体?追问是啊追答#include
#include
#include
//s数组--扑克点数 A:1 , J:11 , Q:12 , K:13
//s1数组--花色 黑1,红2,梅3,方4
void build(int* s, int* s1) //生成扑克函数
{
int i,count=0,num,color;
while(count<52)
{
num=rand()%13+1;
color=rand()%4+1;
int flag_skip=0,flag_end=0;
for(i=0;i<52;i++)
{
if(s[i]==num && s1[i]==color)
{
flag_skip=1;
break;
}
}
if(flag_skip==1)
{
continue;
}
while(1)
{
i=rand()%52;
if(s[i]==0)
{
s[i]=num;
s1[i]=color;
count++;
break;
}
else
{
continue;
}
}
}
}
void prt(int* s, int* s1) //打印函数
{
int i;
for(i=0;i<52;i++)
{
if(i%13==0)
{
printf("
玩家%d : ",i/13+1);
}
switch(s[i])
{
case 1: putchar('A');break;
case 11: putchar('J');break;
case 12: putchar('Q');break;
case 13: putchar('K');break;
default: printf("%d",s[i]);
}
switch(s1[i])
{
case 1: putchar(6);break;
case 2: putchar(3);break;
case 3: putchar(5);break;
case 4: putchar(4);break;
default: printf(" ");
}
printf(" ");
}
}
int main()
{
int s[52],s1[52]; //s数组存放数字,s1存放花色
memset(s,0,sizeof(int)*52); //初始化数组
memset(s1,0,sizeof(int)*52);
srand((unsigned)time(0)); //随机种子初始化
build(s,s1); //随机生成扑克
prt(s,s1); //打印
return 0;
}
全部回答
- 1楼网友:煞尾
- 2021-04-04 14:09
输出的牌要标明花色吗?追问要啊 要说明一下注释哦追答有点长,发不下,你有QQ或者邮箱之类的吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯