Нахождение максимального отрицательного элемента - C (СИ)

Узнай цену своей работы

Формулировка задачи:

for (int i = 0; i < n; i++) 
for (int j = 0; j < k; j++) 
{ 
if (A[i][j] > A[i + 1][j + 1]) 
if (A[i][j] < 0) 
{ 
max = A[i][j]; 
}
Почему эта штука не находит максимальный из отрицательных элементов? Ребят, помогите разобраться

Решение задачи: «Нахождение максимального отрицательного элемента»

textual
Листинг программы
    int max = 0;
 
    for (int i=0; i<n; i++) {
        for (int j=0; j<k; j++) {
            if (a[i][j] >= 0)
                continue;
            if (max == 0) {
                max = a[i][j];
                continue;
            }
            if (a[i][j] > max)
                max = a[i][j];
        }
    }

Объяснение кода листинга программы

В данном коде осуществляется поиск максимального отрицательного элемента в двумерном массиве.

  1. Изначально, в переменной max устанавливается значение 0.
  2. Происходит два вложенных цикла. Первый цикл проходит по всем строкам массива a, а второй - по всем столбцам текущей строки.
  3. Если элемент a[i][j] больше или равен нулю, то он пропускается и происходит переход к следующему элементу внешнего цикла.
  4. Если max равно 0, то текущий отрицательный элемент a[i][j] присваивается переменной max и происходит переход к следующему элементу внешнего цикла.
  5. Если текущий элемент a[i][j] больше значения max, то он присваивается переменной max.
  6. По завершению вложенных циклов, значение переменной max будет содержать максимальный отрицательный элемент массива a.

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы