2020第12-14周练习——7-2 树种统计 (20分)
发布日期:2021-05-06 20:35:19 浏览次数:20 分类:技术文章

本文共 1502 字,大约阅读时间需要 5 分钟。

随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。

输入格式:

输入首先给出正整数N(≤10
​5
​​ ),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。

输出格式:

按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。
输入样例:

29Red AlderAshAspenBasswoodAshBeechYellow BirchAshCherryCottonwoodAshCypressRed ElmGumHackberryWhite OakHickoryPecanHard MapleWhite OakSoft MapleRed OakRed OakWhite OakPoplanSassafrasSycamoreBlack WalnutWillow

输出样例:

Ash 13.7931%Aspen 3.4483%Basswood 3.4483%Beech 3.4483%Black Walnut 3.4483%Cherry 3.4483%Cottonwood 3.4483%Cypress 3.4483%Gum 3.4483%Hackberry 3.4483%Hard Maple 3.4483%Hickory 3.4483%Pecan 3.4483%Poplan 3.4483%Red Alder 3.4483%Red Elm 3.4483%Red Oak 6.8966%Sassafras 3.4483%Soft Maple 3.4483%Sycamore 3.4483%White Oak 10.3448%Willow 3.4483%Yellow Birch 3.4483%

思路

知识点
1.保留四位小数

cout<
<
<

2.string排序直接

string name[100001];

sort(name,name+j);

代码

#include
using namespace std;map
xx;int main(){
ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n; string name[100001],s; cin>>n; cin.get(); int j=0; for(int i=0;i

补充

看了别人代码之后的

#include
using namespace std;int main(){
int n; cin>>n; cin.get(); string s; map
xx;/*map数组本身按键值升序*/; for(int i=0;i
first<<" "; cout<
<
<
second*100.0/n<<"%"<

现在才知道map数组本身按键值升序排列,所以直接输出即可

还有当时做的想到一个问题是接收换行符不用cin.get()用getchar(),getchar是C语言的;因为这个加速器又给我输入错误了,最近真的是发现加速器用了不如不用。

上一篇:2020第12-14周练习——7-3 顺序存储的二叉树的最近的公共祖先问题 (20分)
下一篇:PAT (Basic Level) Practice (中文)——1011 A+B 和 C (15分)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月14日 18时50分32秒