C语言方面的一个问题,关于扑克随机发牌

C语言方面的一个问题,关于扑克随机发牌,第1张

这是一条空语句,完整应该是这样的:while (c[j = rand() % 4] >= 13){};

给c[j]牌赋值,rand() % 4赋给j 保证j的值在0~3之间。while语句目的是筛选,保证c[j]值在0~12之间,如果大于等于13,继续循环,直到0~12之间,跳出循环

下一句c[j]++; 就是让0~12范围变成1~13范围,也就是一组13张牌用1~13这13个数字对应

明白了么?采纳的话就给分吧

洗牌的程序

#include <stdioh>

#include <conioh>

#include <stdlibh>

#include <timeh>

#define N 52

int main(void)

{

int poker[N + 1];

int i, j, tmp, remain;

/ 初始化阵列 /

for (i = 1; i <= N; i++)

{

poker[i] = i;

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

}

printf("\n");

srand(time(0));

/ 洗牌 /

for (i = 1; i <= N; i++)

{

j = rand() % N + 1;

tmp = poker[i];

poker[i] = poker[j];

poker[j] = tmp;

}

for (i = 1; i <= N; i++)

{

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

}

/ 判断花色 /

for (i = 1; i <= N; i++)

{

switch((poker[i] - 1) / 13)

{

case 0:

printf("桃"); break;

case 1:

printf("心"); break;

case 2:

printf("砖"); break;

case 3:

printf("梅"); break;

}

/ 数字 /

remain = poker[i] % 13;

switch(remain)

{

case 0:

printf("K "); break;

case 12:

printf("Q "); break;

case 11:

printf("J "); break;

default:

printf("%d ", remain); break;

}

if (i % 13 == 0)

printf("\n");

}

return 0;

}

以上就是关于C语言方面的一个问题,关于扑克随机发牌全部的内容,包括:C语言方面的一个问题,关于扑克随机发牌、C语言编写一个洗牌发牌程序 1) 洗牌功能 2) 发牌功能: 54张牌,随机发给4个玩家,要求显示各玩家及底牌. 3)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9868239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存