C++ мин. и макс. элемент массива за один проход

нужно массив из 12 чисел заполнить с клавиатуры и за один проход найти максимальный и минимальный элемент в нем. написал код но не понимаю почему не работает. подскажите пожалуйста

#include <iostream>
using namespace std;

int main()
{
    int arr[12], min, max;
    for (int i = 0; i < 12; i++) {
        cin >> arr[i];
    }
    do {
        min = arr[0];
        max = arr[0];
    } while (0);
    for (int k = 1; k < 12; k++) {
        if (arr[k] > max) {
            max = arr[k];
        }
        else if (arr[k] < min) {
            min = arr[k];
        }
    cout << "max is: " << max << " " << "min is: " << min;
    return 0;
        }
}

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

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

Попробуйте так:

#include <iostream>
using namespace std;

int main()
{
    int a, min, max;
    cin >> a;
    min = max = a;
    for (int i = 1; i < 12; i++) {
        cin >> a;
        if (min > a) min = a; 
        if (max < a) max = a; 
    }
    cout << "max is: " << max << " " << "min is: " << min;
}

Если ну никак без массива -

#include <iostream>
using namespace std;

int main()
{
    int a[12], min, max;
    cin >> a[0];
    min = max = a[0];
    for (int i = 1; i < 12; i++) {
        cin >> a[i];
        if (min > a[i]) min = a[i]; 
        if (max < a[i]) max = a[i]; 
    }
    cout << "max is: " << max << " " << "min is: " << min;
}

Update

Кстати, у вас для исправления ситуации было достаточно заменить

cout << "max is: " << max << " " << "min is: " << min;
return 0;
    }

на

    }
cout << "max is: " << max << " " << "min is: " << min;
return 0;

Все после этого работает :)

→ Ссылка
Автор решения: Spectator

У вас так же не присвоено значение max и min. В некоторых случаях может найти неправильный максимум или минимум. Нужно для максимального элемента устанавливать то значение, которого не может быть. Например для массива из положительных чисел. max должен быть равен -1 к примеру. А min должен быть равен числу которое будет всегда больше любого. Например макс. число массива 1000. min должен быть 1001.

→ Ссылка