Function max with 3 C++ arguments



  • So, there's a task in which the max function has three arguments, but the standard max function has only two arguments, and it's true that in an attempt to introduce a third argument, it makes a mistake. C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов

    Source: введите сюда описание изображения

    My decision is:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    double max3(double a1, const double b1, const double c1) 
    {
        return a1 > b1 ? a1 > c1 ? a1 : c1 : b1 > c1 ? b1 : c1; // max3 = max(a + b * c, 1., 15.)
    }
    double maximum(double a, double b, double c, double max3)
    {
        return (max(a, a + b) + max(a, b + c)) / (1 + max3);
    }
    int main()
    {
        double a, b, c;
        const double b1 = 1.;
        const double c1 = 15.;
        cin >> a >> b >> c;
        double a1 = a + b * c;
        cout << "Answer: " << maximum(a, b, c,max3(a1, b1, c1));
    }
    


  • Beginning C++11std::max understand. initializer_list of any number of arguments that make it possible to rid itself of cycles

    #include <iostream>
    #include <algorithm>
    using namespace std;
    

    int main()
    {
    double a = 33;
    double b = -2;
    const double c = 12;
    cout << max({a,b,c}) << endl;
    return 0;
    }

    https://ideone.com/18Xmeh



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2