Написан код.Компилятор ошибку не выдают, но работает не корректно. Поправьте пожалуйста

#include <iostream>
#include <time.h>

using namespace std;

template <typename MY_TYPE>    
int function(MY_TYPE size, MY_TYPE* mas = new int) 
{
    MY_TYPE max = mas[0];
    for (MY_TYPE i = 0; i < size; i++)
    {
        MY_TYPE max = mas[0];
        if (mas[i] > max) 
        {
            max = mas[i];
        }
        max = mas[i];
    }
    cout << "MAX IS = " << max;
    return max;
}


int main()
{
    setlocale(LC_ALL, "rus");
    /*
    18. Написать функцию, возвращающие максимальное значение из двух,
    трех и четырех целых значений.*/

    int size;
    cout << "Введите кол-во цифр (от одного до четырех): ";
    cin >> size;

    int* mas = new int[size];

    for (int i = 0; i < size; i++)
    {
        cout << "Введите " << i + 1 << " число: ";
        cin >> mas[i];
    }
    function(size, mas);
}

Ответы (1 шт):

Автор решения: Harry

Навскидку -

MY_TYPE max = mas[0];
for (MY_TYPE i = 0; i < size; i++) {
    MY_TYPE max = mas[0];

    if (mas[i] > max) {
        max = mas[i];
    }
    max = mas[i];
}

замените на

MY_TYPE max = mas[0];
for (MY_TYPE i = 0; i < size; i++) {
    if (mas[i] > max) {
        max = mas[i];
    }
}

И еще раз подумайте - вам точно нужен шаблон?...

→ Ссылка