Найти минимальное ПОЛОЖИТЕЛЬНОЕ значение массива. arr[2][3] = {{74,4,-1}, {1,-6,9}} (например, числа могут быть любые)

# include <iostream>

using namespace std;

int main()
{
    int arr[2][3] = {{74,4,-1}, {1,-6,9}};
    int min = arr[0][0];
    
    for(int i = 0; i < 2; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            if(j < 0)
            {
                j *= (-1);
                if (arr[i][j] < min)
                {
                min = arr[i][j];
                }
            }
    
        }
        
    }

    
    cout << min << endl;
    return 0;
}

Постоянно выводит первое значение массива, чтобы я не делал (редко минимальное значение, в моем случае [-6])


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

Автор решения: Эникейщик

Первое значение выводит потому что int min = arr[0][0];, после этого min никогда не меняется.

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

ошибка у тебя в этих строках

if(j < 0) {
    j *= (-1);

никогда j не станет меньше 0, поэтому каждая итерация ничего не делала, и ты получал всегда первый элемент массива

в твоем случае код должен выглядеть так

int main() {
    int arr[2][3] = {{74,4,-1}, {1,-6,9}};
    int min = arr[0][0];
    
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            if (arr[i][j] >= 0 && arr[i][j] < min)
                min = arr[i][j];
        }
        
    }

    
    cout << min << endl;
    return 0;
}

вот результат работы

→ Ссылка