7-24 树种统计 (25 分)(详解)map做法 map真香啊!
一:題目
7-24 樹種統計 (25 分)隨著衛星成像技術的應用,自然資源研究機構可以識別每一棵樹的種類。請編寫程序幫助研究人員統計每種樹的數量,計算每種樹占總數的百分比。
輸入格式:
輸入首先給出正整數N(≤10
?5
?? ),隨后N行,每行給出衛星觀測到的一棵樹的種類名稱。種類名稱由不超過30個英文字母和空格組成(大小寫不區分)。
輸出格式:
按字典序遞增輸出各種樹的種類名稱及其所占總數的百分比,其間以空格分隔,保留小數點后4位。
輸入樣例:
29
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow
輸出樣例:
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%
二:思路
用了map容器,map真香,這題要統計不同種類的個數,還要排序,這不撞到了map的懷里了 !
三:上碼
#include<bits/stdc++.h> using namespace std;int main() {int N; map<string,int>m;//用map來統計相同元素的個數 cin >> N;getchar();for(int i = 0; i < N; i++){string str;getline(cin,str);m[str]++; //統計個數}map<string,int>::iterator t;for( t = m.begin(); t!=m.end(); t++){double temp = 100*(double)(t->second) / N; printf("%s %0.4lf%%\n",t->first.c_str(),temp);} }總結:
這是我第三次做題用到map了,第一次遇到,學習了基本用法,第二次是沒想到用map ,主要還是不熟練,但這次不但想到,還用上,把題做對了, 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!這是暑假刷題以來最開心的一天哈哈哈哈哈哈哈
加油加油加油!
總結
以上是生活随笔為你收集整理的7-24 树种统计 (25 分)(详解)map做法 map真香啊!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不能下载文件怎么办不能下载文件怎么办苹果
- 下一篇: 笔记本低压内存条和标压内存条的区别笔记本