将52张扑克牌随机分成两组,每组26张 用C语言实现
时间: 2024-02-10 19:25:12 浏览: 181
C语言实现随机发扑克牌
5星 · 资源好评率100%
您可以使用C语言的随机数生成函数 `rand()` 来实现将52张扑克牌随机分成两组的功能。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int cards[], int n) {
for (int i = n - 1; i > 0; i--) {
int j = rand() % (i + 1);
int temp = cards[i];
cards[i] = cards[j];
cards[j] = temp;
}
}
int main() {
int cards[52];
int group1[26];
int group2[26];
// 初始化扑克牌
for (int i = 0; i < 52; i++) {
cards[i] = i + 1;
}
// 设置随机种子
srand(time(NULL));
// 洗牌
shuffle(cards, 52);
// 将洗好的牌分成两组
for (int i = 0; i < 26; i++) {
group1[i] = cards[i];
group2[i] = cards[i + 26];
}
// 输出结果
printf("Group 1: ");
for (int i = 0; i < 26; i++) {
printf("%d ", group1[i]);
}
printf("\n");
printf("Group 2: ");
for (int i = 0; i < 26; i++) {
printf("%d ", group2[i]);
}
printf("\n");
return 0;
}
```
这段代码首先使用 `rand()` 函数生成随机数,然后使用 `shuffle()` 函数将扑克牌数组进行洗牌。接下来,将洗好的牌按照顺序分成两组,每组26张牌。最后,通过循环输出两组牌的内容。
请注意,为了保证每次运行程序时得到不同的结果,我们在 `srand()` 函数中使用 `time(NULL)` 来设置随机数种子。这样可以根据系统时间产生一个不同的种子,从而生成不同的随机数序列。
阅读全文