Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <iomanip>
- #include <math.h>
- using namespace std;
- int main(){
- double max;
- double min;
- double average;
- double sum = 0;
- double temp;
- double check;
- int i = 0;
- string define;
- int strict_flag = 0;
- int integers_only_flag = 0;
- cin >> define;
- size_t strict = define.find("strict");
- size_t integers_only = define.find("integers-only");
- if(define == "END"){
- cout <<"ERR: PROVIDE AT LEAST ONE NUMBER" << endl;
- return 0;
- }
- if(strict != string::npos){
- define.erase(define.begin(),define.end());
- strict_flag = 1;
- }
- if(integers_only != string::npos){
- define.erase(define.begin(),define.end());
- integers_only_flag = 1;
- }
- if(strict_flag == 0 && integers_only_flag == 0){
- istringstream valid_elements(define);
- valid_elements >> temp;
- max = temp;
- min = temp;
- sum = temp;
- i = 1;
- }else{
- cin >> define;
- if(define == "END"){
- cout <<"ERR: PROVIDE AT LEAST ONE NUMBER" << endl;
- return 0;
- }else{
- istringstream valid_elements(define);
- valid_elements >> temp;
- max = temp;
- min = temp;
- sum = temp;
- i = 1;
- }
- }
- while(1){
- cin >> define;
- if(define == "END"){
- break;
- }
- if(strict_flag == 1){
- if((define < "0" || define > "9")){
- cout << "ERR: PROVIDE ONLY NUMBERS" << endl;
- return 0;
- }
- }
- if((define >= "0" && define <= "9")){
- istringstream valid_elements(define);
- valid_elements >> temp;
- if(strict_flag == 1 && integers_only_flag == 1){
- if(modf(temp, &check) != 0){
- cout << "ERR: PROVIDE ONLY INTEGERS" << endl;
- return 0;
- }
- }
- if(i == 0){
- max = temp;
- min = temp;
- sum = temp;
- i = 1;
- }else{
- if(temp > max){
- max = temp;
- }
- if(temp < min){
- min = temp;
- }
- sum += temp;
- i++;
- }
- }
- }
- average = sum/i;
- if(integers_only_flag == 1){
- int imax = max;
- int imin = min;
- int iaverage = average;
- cout << imin << " " << imax << " " << iaverage << endl;
- }else{
- cout << setprecision(4 )<< min << " " << setprecision(4) << max << " " << setprecision(4) << average << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement