测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A37132. 垃圾分类

填空题 困难

题目描述

垃圾分类

题目描述

不知北京的小同学们会不会扔垃圾啊?

2019 年 7 月 1 日,上海正式实施垃圾分类。

2020 年 5 月 1 日,北京正式实施垃圾分类。

不要以为垃圾分类这件事离自己很远,到 2020 年底,全国将有 46 个重点城市要基本建成垃圾分类处理系统。小伙伴们,你们准备好了吗?我们就以《北京市生活垃圾分类管理条例》为参考,学习一下垃圾分类的知识吧。

生活垃圾基本分类有四种∶厨余垃圾,可回收物,有害垃圾和其他垃圾。

①"厨余垃圾"指家庭中产生的菜帮菜叶、瓜果皮核、剩菜剩饭、废弃食物等易腐垃圾。           ②"可回收物"指在日常生活中己失去原有使用价值,但回收后加工可再利用的垃圾;

③"有害垃圾"指生活垃圾中的有毒有害物质;

④"其他垃圾"指除上述垃圾之外的生活垃圾,及难辨识类别的生活垃圾。

下表中列举了四类垃圾中的三个常见例子,及其英文标识。

1.厨余垃圾(FOOD WASTE):菜叶(leaves),西瓜皮(watermelon peel),剩饭(leftovers).

2.可回收物(RECYCLABLE):纸箱(paper box),塑料瓶(plastic bottle),衣服(clothes).

3.有害垃圾(HAZARDOUS):充电电池(rechargeable battery),弃置药品(abandoned medicine),消毒剂(disinfectant)

4.其他垃圾(RESIDUAL WASTE):口罩(mask),普通电池(battery),塑料袋(plastic bag).

学会了吗?现在请你根据输入的(1-20)个垃圾名称,将这些垃圾进行归类统计,并将出现次数最多的垃圾种类的英文名称,及其出现次数打印出来。

输入描述

第一行为一个正整数 N(1≤N≤20),代表接下来将出现的垃圾行数。接下来 N 行,每行是上表中某一种具体的垃圾的英文名称。

(注意:测试数据中,出现次数最多的垃圾种类只有一种)

输出描述

输出结果有 2 行。

第一行是出现次数最多的垃圾种类的英文名称。第二行是出现次数最多的垃圾种类的出现次数。

样例输入

5
leaves
mask
disinfectant
leftovers
watermelon peel

样例输出

FOOD WASTE
3

参考答案

#include<iostream>//调用输入输出流头文件 #include<string>//调用字符串头文件 using namespace std;//使用标准名字空间 string rub[4][4]={{"FOOD WASTE","leaves","watermelon peel","leftovers"}, {"RECYCLABLE","paper box","plastic bottle","clothes"}, {"HAZARDOUS","rechargeable battery","abandoned medicine","disinfectant"}, {"RESIDUAL WASTE","mask","battery","plastic bag"}};//定义二维数组rub,代表各种垃圾及分类 string myrub[20];//定义数组myrub,包含20个字符串类型变量 int each[4];//定义数组each,包含4个整数类型变量 int n,n_max=0;//定义整数类型n,n_max并初始化赋值为0 int main(){//主函数开始 cin>>n;//输入n的值 char ch=cin.get();//这里需要一个来接收enter,不然这个回车键就是myrub[0]的内容 for(int i=0;i<n;i++){//for循环,计数器i从0自增到n-1,共循环n次 getline(cin,myrub[i]);//整行输入myrub的i号元素 } for(int i=0;i<n;i++){//for循环,计数器i从0自增到n-1,共循环n次 for(int j=0;j<4;j++){//for循环,计数器j从0自增到3,共循环4次 if(myrub[i]==rub[j][1]||myrub[i]==rub[j][2]||myrub[i]==rub[j][3]){//如果murub的i号元素等于rub的[j]1,2,3号元素 each[j]++;//each的j号元素自增1 } } } for(int i=1;i<4;i++){//for循环,计数器i从1自增到3,共循环3次 if(each[i]>each[n_max]){//如果each的i号元素大于each的n_max号元素 n_max=i;//将n_max赋值为i } } cout<<rub[n_max][0]<<'\n'<<each[n_max];//输出rub的n_max,0号元素,换行并输出each的n_max return 0;//主函数结束,返回0 }
上一题 下一题