c作业求指导一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A 、2、3、4、5、6、7、8、9、10、J、Q、K十三张牌.编写程序将一副
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 04:55:42
c作业求指导一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A 、2、3、4、5、6、7、8、9、10、J、Q、K十三张牌.编写程序将一副
c作业求指导
一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A 、2、3、4、5、6、7、8、9、10、J、Q、K十三张牌.编写程序将一副牌随机发给4个玩家,对玩家手中的牌按花色和点数进行排序后显示发牌结果.
我是想设两个花色和数字(字母)的变量,然后用while(1)和switch逐步判定,不过思路还是不是很清楚,不太会,只写了这一点:
#include
#include
#include
int main ()
{
int type, num, player1, player2, player3, player4;
char a;
type = 1 + (int)rand() % 4;
num = 1 + (int)rand() % 13;
while (1)
{
switch(type)
{
case 1;
if(num == 1)
a = 'A';
c作业求指导一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A 、2、3、4、5、6、7、8、9、10、J、Q、K十三张牌.编写程序将一副
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random(x) (rand()%x)
int main()
{
srand((int)time(0));
int a[4][13];
int c[4];
c[0]=c[1]=c[2]=c[3]=0;
for(int x=0;x<52;x++)//52个数字代表52张牌
{
int key = random(4);//随机分给4个人
while(c[key] >= 13)
{
key = random(4);
}
a[key][c[key]++] = x;
}
char c_s[4][9] = {"黑桃","红桃","梅花","方片"};//注释1
for(int i=0;i<4;i++)
{
printf("play %d:",i+1);
for(int j=0;j<13;j++)
{
int k = a[i][j];
//配合注释1的理解
//就是 3 代表黑桃3
//16 = 13 * 1 + 3 代表红桃3
// 29 = 13 * 2 + 3 代表草花3
//42 = 13 * 3 + 3 代表方片3
printf(" %s%d",c_s[k/13],(k%13) + 1);
}
printf("\n");
}
return 0;
}
//运行一下就看见结果了