@DartNyan

Что не так с моей проверкой на максимальный элемент в массиве?

Привет.
Решаю университетскую задачу.
Видимо к концу слишком устал и мозг отказывается работать.
Я нахожу максимальный элемент матрицы среди упорядоченных строк (очевидно, что в таких строках такие элементы последние), запихиваю их (макс эл-ты только таких строк) в специальный массив, а уже в этом массиве ищу самый максимальный. Вот тут и возникла проблема. (в самом конце)

spoiler
#include <stdio.h>
#include <stdlib.h>
#define n 3 //стобцы
#define m 4 //строки

void main()
{
    //Дана числовая матрица m x n.
    //Определить максимальный среди всех элементов тех строк, которые упорядочены по возрастанию

    enum BOOLEAN { false, true }; // 0 и 1
    int flag, max;
    int array[m][n] = { {1,2,3}, // +
                        {6,5,4}, // -
                        {7,8,9}, // +
                        {4,5,1} }; // -
    int forMax[m]; // Массив хранения максимальных результатов

    for (int j = 0; j < m; j++) { // Цикл перебора строк
        for (int i = 1; i < n; i++) { //Цикл проверки строки на упорядоченность
            if (array[j][i] > array[j][i-1]) {
                flag = true; //Пока условие выполняется flag = trute
            } else {
                flag = false; //Условие не выполнилось - проверка заканчивается
                break;
            };
        }
        if (flag == true)
                forMax[j] = array[j][n-1];
        else
            forMax[j] = 0;
    }

    max = forMax[0]; // Проблема
    for (int i = 1; i++; i < m) //m = 4
        if (max < forMax[i])
            max = forMax[i];

    printf("%i %i %i %i",forMax[0], forMax[1], forMax[2], forMax[3]);
    printf("\n%i", max);

}

  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
for (int i = 1; i++; i < m)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы