在某网站收集了n个人的注册账号,账号类型有身份证号或者QQ号两种。请编程用恰当的数据结构保存信息,并统计身份证中男性和女性的人数,以及QQ账号的平均值(取整)。 提示:身份证号码中倒数第2位若为奇数则表示男性,若为偶数则表示女性 输入 第1行,一个正整数n,1 ≤ n ≤ 10000。 下面n行,每行一个字符和一个字符串。第一个字符表示账号类型,有i、q两种,第二个字符串是账号信息。 输出 一行3个整数,分别代表男性人数、女性人数、QQ号平均值
时间: 2024-04-01 07:38:23 浏览: 161
根据题目描述,可以使用结构体来存储每个人的信息,其中包括账号类型和账号信息两个字段。为了方便统计男性和女性人数,可以在账号类型为身份证号码时,取出倒数第二位判断性别,并统计男性和女性人数。为了方便计算QQ号平均值,可以使用一个变量来保存所有QQ号的总和,最后除以QQ号的个数即可得到平均值。
下面是一份实现该功能的 C++ 代码:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Account {
char type; // 账号类型,'i'表示身份证号码,'q'表示QQ号
string info; // 账号信息
};
int main() {
int n;
cin >> n;
Account accounts[n];
int male_count = 0, female_count = 0;
int qq_sum = 0, qq_count = 0;
for (int i = 0; i < n; i++) {
cin >> accounts[i].type >> accounts[i].info;
if (accounts[i].type == 'i') {
int gender = (accounts[i].info[accounts[i].info.size() - 2] - '0') % 2;
if (gender == 0) {
female_count++;
} else {
male_count++;
}
} else { // 账号类型为QQ号
qq_sum += stoi(accounts[i].info);
qq_count++;
}
}
cout << male_count << " " << female_count << " ";
if (qq_count > 0) {
cout << qq_sum / qq_count << endl;
} else {
cout << 0 << endl;
}
return 0;
}
```
该代码的输入格式为:
```
n
type1 info1
type2 info2
...
typen infon
```
其中,第一行为数据组数,接下来 n 行为每组数据,每行包括一个账号类型和一个账号信息,账号类型为 'i' 表示身份证号码,为 'q' 表示 QQ 号,账号信息为字符串类型。
输出格式为:
```
male_count female_count qq_avg
```
其中,male_count 表示男性人数,female_count 表示女性人数,qq_avg 表示 QQ 号平均值。
阅读全文