
C++ Максимум Найдите индексы первого вхождения максимального элемента в двумерном массиве.
Входные данные Программа получает на вход размеры массива n≤10 и m≤10, затем n строк по m целых чисел, не превосходящих по модулю 231. Выходные данные Выведите два числа: номер строки и номер столбца, в которых стоит наибольший элемент в двумерном массиве. Если таких элементов несколько, то выводится тот, у которого меньше номер строки, а если номера строк равны, то тот, у которого меньше номер столбца. Примеры Ввод: 3 4 0 3 2 4 2 3 5 5 5 1 2 3 вывод: 1 2

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int a[100][100];
// чтение
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
int max = a[0][0], max_i = 0, max_j = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] > max) {
max = a[i][j];
max_i = i;
max_j = j;
}
}
}
cout << max_i << " " << max_j;
return 0;
}
Объяснение:



Для решения этой задачи вам нужно пройти по всем элементам массива и отслеживать максимальный элемент, а также его позицию. Вот пример решения на C++:
cpp#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int max_element = INT_MIN; // Инициализируем максимальный элемент как минимальное значение int
int max_row, max_col; // Переменные для хранения позиции максимального элемента
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int current_element;
cin >> current_element;
if (current_element > max_element) {
max_element = current_element;
max_row = i + 1; // Индексы начинаются с 1
max_col = j + 1;
}
}
}
cout << max_row << " " << max_col << endl;
return 0;
}
Этот код сначала считывает размеры массива (n и m), затем проходит по всем элементам массива, сравнивая их с текущим максимальным элементом. Если текущий элемент больше максимального, он обновляет максимальный элемент и сохраняет его позицию (строку и столбец). По завершении прохода по массиву, программа выводит позицию максимального элемента.



Для решения этой задачи, вам нужно пройти по всем элементам двумерного массива, отслеживая максимальный элемент и его индексы. Вот C++ код, который решает эту задачу:
cpp#include <iostream>
int main() {
int n, m;
std::cin >> n >> m;
int max_element = INT_MIN; // Инициализируем максимальный элемент минимальным возможным значением
int max_row = -1; // Инициализируем индекс строки максимального элемента
int max_col = -1; // Инициализируем индекс столбца максимального элемента
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
int element;
std::cin >> element;
// Если текущий элемент больше текущего максимального элемента
// или равен ему, но имеет меньший номер строки и/или столбца,
// то обновляем максимальный элемент и его индексы.
if (element > max_element || (element == max_element && (i < max_row || (i == max_row && j < max_col)))) {
max_element = element;
max_row = i;
max_col = j;
}
}
}
// Выводим индексы строки и столбца максимального элемента (с учетом 1-индексации).
std::cout << max_row + 1 << " " << max_col + 1 << std::endl;
return 0;
}
Этот код считывает размеры массива, затем проходит по всем элементам, находит максимальный элемент и его индексы, и выводит результат.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili