c语言编程 自动发牌程序
主要内容开发一个自动发扑克牌的软件,使之能完成以下基本功能:1)52张扑克牌(无大小王)随机分发给4个玩家,每个玩家13张牌。2)数据包括:4种花色(黑、红、梅、方),每...
主要
内容 开发一个自动发扑克牌的软件,使之能完成以下基本功能:
1)52张扑克牌(无大小王)随机分发给4个玩家,每个玩家13张牌。
2)数据包括:4种花色(黑、红、梅、方),每种花色13张牌(2、3、4、5、6、7、8、9、T、J、Q、K、A)。
3)按花色和大小依次输出每个玩家被发给的牌。
4) 要求使用:随机函数、循环、数组、函数、数组名作为函数的参数、模块化程序设计等知识。
5) 成绩评定按实现的功能、代码的精简度及报告的完整性、准确性进行区分。 展开
内容 开发一个自动发扑克牌的软件,使之能完成以下基本功能:
1)52张扑克牌(无大小王)随机分发给4个玩家,每个玩家13张牌。
2)数据包括:4种花色(黑、红、梅、方),每种花色13张牌(2、3、4、5、6、7、8、9、T、J、Q、K、A)。
3)按花色和大小依次输出每个玩家被发给的牌。
4) 要求使用:随机函数、循环、数组、函数、数组名作为函数的参数、模块化程序设计等知识。
5) 成绩评定按实现的功能、代码的精简度及报告的完整性、准确性进行区分。 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
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("\n玩家%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;
}
更多追问追答
追问
能不能不用结构体?
追答
还没学到结构体?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的牌要标明花色吗?
追问
要啊 要说明一下注释哦
追答
有点长,发不下,你有QQ或者邮箱之类的吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询