Advertisement
Spocoman

03. Histogram

Sep 7th, 2023
630
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.     double p1 = 0.0, p2 = 0.0, p3 = 0.0, p4 = 0.0, p5 = 0.0;
  7.  
  8.     int num;
  9.     cin >> num;
  10.  
  11.     int number;
  12.  
  13.     for (int i = 0; i < num; i++) {
  14.         cin >> number;
  15.  
  16.         if (number < 200) {
  17.             p1++;
  18.         }
  19.         else if (number < 400) {
  20.             p2++;
  21.         }
  22.         else if (number < 600) {
  23.             p3++;
  24.         }
  25.         else if (number < 800) {
  26.             p4++;
  27.         }
  28.         else {
  29.             p5++;
  30.         }
  31.     }
  32.  
  33.     cout.setf(ios::fixed);
  34.     cout.precision(2);
  35.  
  36.     cout << p1 / num * 100 << "%" << endl;
  37.     cout << p2 / num * 100 << "%" << endl;
  38.     cout << p3 / num * 100 << "%" << endl;
  39.     cout << p4 / num * 100 << "%" << endl;
  40.     cout << p5 / num * 100 << "%" << endl;
  41.  
  42.     return 0;
  43. }
  44.  
  45. Решение с речник, тернарен оператор и foreach:
  46.  
  47. #include <iostream>
  48. #include<string>
  49. #include<map>
  50.  
  51. using namespace std;
  52.  
  53. int main() {
  54.     map <string, double> histogram = { {"p1", 0.0}, {"p2", 0.0}, {"p3", 0.0}, {"p4", 0.0}, {"p5", 0.0} };
  55.  
  56.     int num;
  57.     cin >> num;
  58.  
  59.     int number;
  60.  
  61.     for (int i = 0; i < num; i++) {
  62.         cin >> number;
  63.  
  64.         string p =
  65.             number < 200 ? "p1" :
  66.             number < 400 ? "p2" :
  67.             number < 600 ? "p3" :
  68.             number < 800 ? "p4" : "p5";
  69.            
  70.         histogram[p]++;
  71.     }
  72.  
  73.     cout.setf(ios::fixed);
  74.     cout.precision(2);
  75.  
  76.     for (string i : {"p1", "p2", "p3", "p4", "p5"}) {
  77.         cout << histogram[i] / num * 100 << "%" << endl;
  78.     }
  79.    
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement