问题 H: 零基础学C/C++179——注册账号
题目描述
在某网站收集了n个人的注册账号,账号类型有身份证号或者QQ号两种。请编程用适当的数据结构保存信息,并统计身份证中男性和女性的人数,以及QQ账号的平均值(取整)。
提示:身份证号码中倒数第2位若为奇数则表示男性,若为偶数则表示女性。
输入
第1行,一个正整数n , 1 <= n <=10000
下面n行,每行一个字符和一个字符串。第一个字符表示账号类型,有i、q两种,第2个字符串是账号信息
输出
一行3个整数,分别表示男性人数、女性人数、QQ平均值
样例输入
点击查看代码
6
i 522633200009118006
i 51170219990111195X
i 45102119800321935X
q 20081011
q 17254862
i 511702196505046283
样例输出
点击查看代码
2 2 18667936
题解
与问题 G: 零基础学C/C++178——成绩统计基本一摸一样,还是注意一下qq账号取平均值的时候取整,不要float了。
代码(AC)
点击查看代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m,w;
long long sum,num,qq,ave;
char id[20];
int main()
{
char Kind;
m=0;w=0;
sum=0;ave=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>Kind;
if(Kind=='i')
{
for(int j=0;j<18;j++) cin>>id[j];
if((id[16]-'0')%2==0) w++;
else m++;
}else if(Kind=='q')
{
cin>>qq;
ave++;
sum+=qq;
}
}
if(ave!=0) ave=sum/ave;
printf("%d %d %lld\n",m,w,ave);
return 0;
}