在数组pai a[52]={{1,'a'},{1,'b'}........} 中随意抽出20张牌,放在数组int b[20]={........}中,并对输出的牌进行排序,编一个函数程序来完成这项任务。
时间: 2024-02-28 10:53:23 浏览: 22
好的,以下是一个实现这个功能的C++函数程序:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;
int main() {
// 定义牌的数组
pair<int, char> a[52] = {{1, 'a'}, {1, 'b'}, /*...省略...*/ {13, 'k'}, {13, 'l'}};
// 随机选取20张牌
srand(time(NULL));
int b[20];
for (int i = 0; i < 20; i++) {
b[i] = rand() % 52;
}
// 对选出的牌进行排序
sort(b, b + 20);
// 输出排序后的牌
for (int i = 0; i < 20; i++) {
cout << a[b[i]].first << a[b[i]].second << " ";
}
cout << endl;
return 0;
}
```
函数程序的具体实现思路如下:
1. 首先定义了一个包含52张牌的数组 `a`,每张牌是一个键值对,其中键表示牌的点数(1~13),值表示牌的花色(a~l);
2. 接着使用 `srand` 和 `rand` 函数随机选取20张牌,将它们的下标存储在数组 `b` 中;
3. 使用 `sort` 函数对数组 `b` 进行排序,这里使用的是默认的升序排序;
4. 最后使用循环遍历数组 `b`,输出排序后的牌的点数和花色,中间用空格隔开。
注意,这里的代码中只是实现的一个简单的随机选牌和排序功能,如果有更多的需求(比如要求不重复选牌、要求按花色排序等),需要根据具体的需求进行修改。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rp](https://img-home.csdnimg.cn/images/20210720083646.png)