c++根据下面要求建立该游戏的用户信息和排行榜
时间: 2024-03-21 14:41:31 浏览: 17
根据下面的要求,可以建立一个结构体来存储用户信息,包括用户名、猜测次数和猜测的数字:
```
struct User {
string name;
int guessCount;
int guessNumber;
};
```
然后,可以定义一个向量来存储所有用户的信息:
```
vector<User> users;
```
接下来,可以定义一个函数来添加用户信息:
```
void addUser(string name, int guessCount, int guessNumber) {
User user;
user.name = name;
user.guessCount = guessCount;
user.guessNumber = guessNumber;
users.push_back(user);
}
```
可以在用户猜测数字的时候调用该函数,将用户的信息添加到用户列表中。
最后,可以定义一个函数来初始化排行榜并按照猜测次数由少到多排序:
```
void initRankList() {
vector<pair<string, int>> rankList;
for (int i = 0; i < users.size(); i++) {
rankList.push_back(make_pair(users[i].name, users[i].guessCount));
}
sort(rankList.begin(), rankList.end(), [](pair<string, int> a, pair<string, int> b) {
return a.second < b.second;
});
for (int i = 0; i < rankList.size(); i++) {
cout << i + 1 << ": " << rankList[i].first << " (" << rankList[i].second << " guesses)" << endl;
}
}
```
该函数首先将所有用户的信息打包成 `pair` 类型,存储在 `rankList` 中,然后使用 `sort` 函数对 `rankList` 进行排序,排序规则为猜测次数由少到多,最后输出排行榜。
完整代码如下:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct User {
string name;
int guessCount;
int guessNumber;
};
vector<User> users;
void addUser(string name, int guessCount, int guessNumber) {
User user;
user.name = name;
user.guessCount = guessCount;
user.guessNumber = guessNumber;
users.push_back(user);
}
void initRankList() {
vector<pair<string, int>> rankList;
for (int i = 0; i < users.size(); i++) {
rankList.push_back(make_pair(users[i].name, users[i].guessCount));
}
sort(rankList.begin(), rankList.end(), [](pair<string, int> a, pair<string, int> b) {
return a.second < b.second;
});
for (int i = 0; i < rankList.size(); i++) {
cout << i + 1 << ": " << rankList[i].first << " (" << rankList[i].second << " guesses)" << endl;
}
}
int main() {
addUser("Alice", 5, 42);
addUser("Bob", 8, 37);
addUser("Charlie", 3, 24);
addUser("David", 6, 56);
initRankList();
return 0;
}
```
输出结果为:
```
1: Charlie (3 guesses)
2: Alice (5 guesses)
3: David (6 guesses)
4: Bob (8 guesses)
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.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)
![](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)
![](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)