加载中...

浙江理工大学入队200题——16H

问题 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;
}
posted @ 2022-10-30 11:08  shany212  阅读(62)  评论(0编辑  收藏  举报