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
}