@kirillon37

Как написать программу которая находит максимальное число в строке и одновременно минимальное число в столбце в двухмерном массиве C++?

Например:

1 13 1
1 12 5
2 90 8

Ответ: 12
  • Вопрос задан
  • 481 просмотр
Пригласить эксперта
Ответы на вопрос 1
Данная программа неоптимальна, так как в случае нескольких максимумов в строке будет выбран первый.
Создайте функцию для 2 части и передавайте в неё необходимые параметры.
for (int row = 0; row < n; row++) {
            int localMax = arr[row][0];
            int maxColumn=0;
            for (int column = 0; column < m; column++) {
                if (localMax < arr[row][column]) {
                    localMax = arr[row][column];
                    maxColumn=column;
                }
            }
           //2 часть
            int localMin = localMax;
            bool isMinInColumn=true;
            for(int row2=0;row2<n;row2++){
                if(arr[row2][maxColumn]<=localMin && row2!=row){
                    isMinInColumn=false;
                    break;
                }
            }
            if(isMinInColumn){
                //печатаем ответ тут
                //System.out.println("Ответ:"+localMin);
                break;
            }
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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