#include <algorithm>
#include <iostream>
using namespace std;
class Math
{
private:
int num1; // one of the private data numbers
int num2; // another one
int num3; // the third one
int num4; // the fourth number
int num5; //the fifth number
public:
Math (int first, int second, int third, int fourth, int fifth); // the class constructor
int Largest(); // member to return the largest number
int Smallest();
float Average();
int Total();
};
Math::Math (int first, int second, int third, int fourth, int fifth)
{
num1 = first; // save the first int
num2 = second ; // save the second int
num3 = third; // save the third int
num4 = fourth;
num5 = fifth;
return;
}
int Math::Largest ()
{
return max({num1, num2, num3, num4, num5});
}
int Math::Smallest ()
{
return min({num1, num2, num3, num4, num5});
}
int Math::Total()
{
return num1+num2+num3+num4+num5;
}
float Math::Average()
{
return (num1+num2+num3+num4+num5)/5.0;
}
//
// A test main to show it works
int main ()
{
// make two objects to hold the numbers using the user defined data type
// ... The value for num1, num2, and num3 will get "constructed" with Object1
// and Object2 thanks to our class member function Math
Math Object1 (10, 20, 30, 11, 15); // The object type is Math, the object is
// called Object1
Math Object2 (5, 10, 6, 9, 8); // The object type is Math, the object is
// called Object2
// find the largest number in the first object (Object1) and print it out
// use the cout object to print the information
int solution;
float sol2;
sol2 = Object1.Average();
cout << "Largest is " << sol2 << endl;
// now do the same for the second object (Object2)
solution = Object2.Largest();
cout << "Largest is " << solution << endl;
// all done, so return
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTWF0aAp7CiBwcml2YXRlOgogICAgaW50IG51bTE7IC8vIG9uZSBvZiB0aGUgcHJpdmF0ZSBkYXRhIG51bWJlcnMKICAgIGludCBudW0yOyAvLyBhbm90aGVyIG9uZQoJaW50IG51bTM7IC8vIHRoZSB0aGlyZCBvbmUKCWludCBudW00OyAvLyB0aGUgZm91cnRoIG51bWJlcgoJaW50IG51bTU7IC8vdGhlIGZpZnRoIG51bWJlcgogcHVibGljOgogICAgTWF0aCAoaW50IGZpcnN0LCBpbnQgc2Vjb25kLCBpbnQgdGhpcmQsIGludCBmb3VydGgsIGludCBmaWZ0aCk7IC8vIHRoZSBjbGFzcyBjb25zdHJ1Y3RvcgogICAgaW50IExhcmdlc3QoKTsgLy8gbWVtYmVyIHRvIHJldHVybiB0aGUgbGFyZ2VzdCBudW1iZXIKICAgIGludCBTbWFsbGVzdCgpOwogICAgZmxvYXQgQXZlcmFnZSgpOwogICAgaW50IFRvdGFsKCk7Cn07CgpNYXRoOjpNYXRoIChpbnQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCwgaW50IGZvdXJ0aCwgaW50IGZpZnRoKQp7CiAgICBudW0xID0gZmlyc3Q7ICAgICAgIC8vIHNhdmUgdGhlIGZpcnN0IGludAoJbnVtMiA9IHNlY29uZCA7ICAgICAvLyBzYXZlIHRoZSBzZWNvbmQgaW50CiAgICBudW0zID0gdGhpcmQ7ICAgICAgIC8vIHNhdmUgdGhlIHRoaXJkIGludAogICAgbnVtNCA9IGZvdXJ0aDsKICAgIG51bTUgPSBmaWZ0aDsKIHJldHVybjsKfQoKaW50IE1hdGg6Okxhcmdlc3QgKCkKewogIHJldHVybiBtYXgoe251bTEsIG51bTIsIG51bTMsIG51bTQsIG51bTV9KTsKfQoKaW50IE1hdGg6OlNtYWxsZXN0ICgpCnsKCXJldHVybiBtaW4oe251bTEsIG51bTIsIG51bTMsIG51bTQsIG51bTV9KTsKfQppbnQgTWF0aDo6VG90YWwoKQp7CglyZXR1cm4gbnVtMStudW0yK251bTMrbnVtNCtudW01Owp9CmZsb2F0IE1hdGg6OkF2ZXJhZ2UoKQp7CglyZXR1cm4gKG51bTErbnVtMitudW0zK251bTQrbnVtNSkvNS4wOwp9Ci8vCi8vIEEgdGVzdCBtYWluIHRvIHNob3cgaXQgd29ya3MKCmludCBtYWluICgpCnsKICAgIC8vIG1ha2UgdHdvIG9iamVjdHMgdG8gaG9sZCB0aGUgbnVtYmVycyB1c2luZyB0aGUgdXNlciBkZWZpbmVkIGRhdGEgdHlwZQogICAgLy8gLi4uIFRoZSB2YWx1ZSBmb3IgbnVtMSwgbnVtMiwgYW5kIG51bTMgd2lsbCBnZXQgImNvbnN0cnVjdGVkIiB3aXRoIE9iamVjdDEKICAgIC8vIGFuZCBPYmplY3QyIHRoYW5rcyB0byBvdXIgY2xhc3MgbWVtYmVyIGZ1bmN0aW9uIE1hdGgKICAgIE1hdGggT2JqZWN0MSAoMTAsIDIwLCAzMCwgMTEsIDE1KTsgLy8gVGhlIG9iamVjdCB0eXBlIGlzIE1hdGgsIHRoZSBvYmplY3QgaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxsZWQgT2JqZWN0MQogICAgTWF0aCBPYmplY3QyICg1LCAxMCwgNiwgOSwgOCk7ICAgIC8vIFRoZSBvYmplY3QgdHlwZSBpcyBNYXRoLCB0aGUgb2JqZWN0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGVkIE9iamVjdDIKICAgIC8vIGZpbmQgdGhlIGxhcmdlc3QgbnVtYmVyIGluIHRoZSBmaXJzdCBvYmplY3QgKE9iamVjdDEpIGFuZCBwcmludCBpdCBvdXQKICAgIC8vIHVzZSB0aGUgY291dCBvYmplY3QgdG8gcHJpbnQgdGhlIGluZm9ybWF0aW9uCiAgICBpbnQgc29sdXRpb247CiAgICBmbG9hdCBzb2wyOwogICAgc29sMiA9IE9iamVjdDEuQXZlcmFnZSgpOwogICAgY291dCA8PCAiTGFyZ2VzdCBpcyAiIDw8IHNvbDIgPDwgZW5kbDsKICAgLy8gbm93IGRvIHRoZSBzYW1lIGZvciB0aGUgc2Vjb25kIG9iamVjdCAoT2JqZWN0MikKICAgIHNvbHV0aW9uID0gT2JqZWN0Mi5MYXJnZXN0KCk7CiAgICBjb3V0IDw8ICJMYXJnZXN0IGlzICIgPDwgc29sdXRpb24gPDwgZW5kbDsKLy8gYWxsIGRvbmUsIHNvIHJldHVybgogICAgcmV0dXJuIDA7Cn0=