6. Дан двумерный массив. Определить:
а) номер строки, в которой расположен максимальный элемент второго
столбца массива. Если элементов с максимальным значением в этом столбце
несколько, то должен быть найден номер строки самого верхнего из них;
ПОЖАЛУЙСТА МОЖНО ЧЕРЕЗ С++ И ПОЛНОСТЬЮ КОД, 30 БАЛЛОВ
Answers & Comments
Verified answer
#include <iostream>
#include <vector>
using namespace std;
void solve(){
int n,m,max_elem = -1e9-7;
cin >> n >> m;
vector<vector<int>> a(n,vector<int>(m));
for(auto &i : a){
for(auto &j : i){
cin >> j;
max_elem = max(max_elem,j);
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(a[i][j] == max_elem){
cout << i + 1;
return;
}
}
}
}
signed main(){
solve();
}
Verified answer
Ответ:
#include <iostream>
using namespace std;
int main()
{
int line, column;
cout << "Введите количество строк и столбцов через пробел: ";
cin >> line >> column;
int array[50][50] = {};
cout << "Введите элементы двумерного массива: \n";
for (int i = 0; i < line; i++ )
{
for (int j = 0; j < column; j++)
{
cin >> array[i][j];
}
}
int max = array[0][1];
int line_number = 1;
for (int i = 0; i < line; i++)
{
int j = 1;
if (max < array[i][j])
{
max = array[i][j];
line_number = i + 1;
}
}
cout << line_number;
}
Объяснение:
#include <iostream> // Библиотека ввода - вывода
using namespace std; // Пространство имен
int main()
{
int line, column; // Создание целочисленных переменных, отвечающих за количество строк и столбцов в двумерном массиве
cout << "Введите количество строк и столбцов через пробел: "; // Вывод сообщения в консоль
cin >> line >> column; // Ввод количества строк и столбцов с клавиатуры
int array[50][50] = {}; // Создание целочисленного массива размером 50х50
cout << "Введите элементы двумерного массива: \n"; // Вывод сообщения в консоль
for (int i = 0; i < line; i++ ) // Цикл для ввода элементов массива
{
for (int j = 0; j < column; j++) // Цикл для ввода элементов массива
{
cin >> array[i][j]; // Ввод элементов массива
}
}
int max = array[0][1]; // Присваиваем переменной, хранящей максимум, значение массива в 0 строке и 1 столбце
int line_number = 1; // Переменная, хранящая номер строки
for (int i = 0; i < line; i++) // Цикл для прогона значений 2-го столбца
{
int j = 1; // // Нужны значения определенного столбца ⇒ значение переменной j будет постоянным
if (max < array[i][j]) // Если значение переменной max < значения массива i строки и j столбца
{
max = array[i][j]; // Значение переменной max = значению массива i строки и j столбца
line_number = i + 1; // Номер строки = индекс строки + 1 (т. к. индексация начинается с нуля)
}
}
cout << line_number; // Вывод ответа
}