Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <iomanip>
  4. #include <math.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.   double max;
  10.   double min;
  11.   double average;
  12.   double sum = 0;
  13.   double temp;
  14.   double check;
  15.   int i = 0;
  16.   string define;
  17.   int strict_flag = 0;
  18.   int integers_only_flag = 0;
  19.  
  20.   cin >> define;
  21.   size_t strict = define.find("strict");
  22.   size_t integers_only = define.find("integers-only");
  23.  
  24.   if(define == "END"){
  25.       cout <<"ERR: PROVIDE AT LEAST ONE NUMBER" << endl;
  26.       return 0;
  27.   }
  28.  
  29.   if(strict != string::npos){
  30.     define.erase(define.begin(),define.end());
  31.     strict_flag = 1;
  32.   }
  33.   if(integers_only != string::npos){
  34.     define.erase(define.begin(),define.end());
  35.     integers_only_flag = 1;
  36.   }
  37.  
  38.   if(strict_flag == 0 && integers_only_flag == 0){
  39.     istringstream valid_elements(define);
  40.     valid_elements >> temp;
  41.     max = temp;
  42.     min = temp;
  43.     sum = temp;
  44.     i = 1;
  45.   }else{
  46.     cin >> define;
  47.     if(define == "END"){
  48.       cout <<"ERR: PROVIDE AT LEAST ONE NUMBER" << endl;
  49.       return 0;
  50.     }else{
  51.       istringstream valid_elements(define);
  52.       valid_elements >> temp;
  53.       max = temp;
  54.       min = temp;
  55.       sum = temp;
  56.       i = 1;
  57.     }
  58.   }
  59.  
  60.   while(1){
  61.     cin >> define;
  62.     if(define == "END"){
  63.       break;
  64.     }
  65.  
  66.     if(strict_flag == 1){
  67.       if((define < "0" || define > "9")){
  68.         cout << "ERR: PROVIDE ONLY NUMBERS" << endl;
  69.         return 0;
  70.       }
  71.     }
  72.   if((define >= "0" && define <= "9")){
  73.       istringstream valid_elements(define);
  74.         valid_elements >> temp;
  75.       if(strict_flag == 1 && integers_only_flag == 1){
  76.         if(modf(temp, &check) != 0){
  77.           cout << "ERR: PROVIDE ONLY INTEGERS" << endl;
  78.           return 0;
  79.         }
  80.       }
  81.       if(i == 0){
  82.         max = temp;
  83.         min = temp;
  84.         sum = temp;
  85.         i = 1;
  86.       }else{
  87.         if(temp > max){
  88.           max = temp;
  89.         }
  90.         if(temp < min){
  91.           min = temp;
  92.         }
  93.         sum += temp;
  94.         i++;
  95.       }
  96.     }
  97.   }
  98.   average = sum/i;
  99.   if(integers_only_flag == 1){
  100.     int imax = max;
  101.     int imin = min;
  102.     int iaverage = average;
  103.     cout << imin << " " << imax << " " << iaverage  << endl;
  104.   }else{
  105.     cout << setprecision(4 )<< min << " " << setprecision(4) << max << " " << setprecision(4) << average  << endl;
  106.   }
  107.   return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement