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记录每个字符串出现的次数,之后计算每种树占总数的百分比即可。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include<bits/stdc++.h> usingnamespacestd;
intmain(){ int n; cin >> n; getchar(); map<string, double> m; string name; for(int i = 0; i < n; i++){ getline(cin,name); m[name]++; } for(auto it = m.begin(); it != m.end();it++){ cout << it->first; printf(" %.4lf%%\n",it->second * 100 / n); } return0; }