这是一条空语句,完整应该是这样的: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)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)