Вопрос задан 25.07.2023 в 09:28. Предмет Информатика. Спрашивает Жусупов Жандос.

Дан вещественный массив А[N][М], все элементы которого различны. В каждой строке найти элемент с

наименьшим значением, а затем среди найденных элементов выбрать наибольший. Вывести на экран индексы этого элемента. Написать программу на с++
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Романова Софья.

Код

#include <bits/stdc++.h>

using namespace std;

int main() {

   int n, m;

   cin >> n >> m;

   double a[n][m];

   for (int i = 0; i < n; ++i)

     for (int j = 0; j < m; ++j)

       cin >> a[i][j];

   int mxi = 0, mxj = 0;

   for (int i = 0; i < n; ++i) {

     int mnj = 0;

     for (int j = 1; j < m; ++j)

       if (a[i][j] < a[i][mnj]) mnj = j;

     if (a[i][mnj] > a[mxi][mxj]) {

       mxi = i;

       mxj = mnj;

     }

   }

   cout << (mxi + 1) << " " << (mxj + 1) << endl;

   return 0;

}


Тест

Ввод:

4 5

1 2 3 4 5

0 1 2 3 4

0 0 0 0 -1

16 32 28 17 100

Вывод:

4 1

Пояснение:

Минимальные элементы в каждой строке: 1(1;1), 0(2;1), -1(3;5), 16(4;1)

Максимальным среди них является число 16, которое имеет координаты 4 1 (1-индексация).

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи, нужно обработать каждую строку массива, найти в каждой строке элемент с наименьшим значением, а затем выбрать наибольший из этих наименьших элементов и вывести его индексы. Вот C++ код, который решает данную задачу:

cpp
#include <iostream> #include <vector> int main() { int N, M; std::cout << "Введите количество строк (N): "; std::cin >> N; std::cout << "Введите количество столбцов (M): "; std::cin >> M; // Создаем и заполняем массив std::vector<std::vector<double>> A(N, std::vector<double>(M)); std::cout << "Введите элементы массива:" << std::endl; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) { std::cin >> A[i][j]; } } // Находим наименьший элемент в каждой строке std::vector<double> minElements; for (int i = 0; i < N; ++i) { double minElement = A[i][0]; for (int j = 1; j < M; ++j) { if (A[i][j] < minElement) { minElement = A[i][j]; } } minElements.push_back(minElement); } // Находим наибольший из наименьших элементов и его индексы double maxOfMinElements = minElements[0]; int rowWithMaxOfMinElements = 0; for (int i = 1; i < N; ++i) { if (minElements[i] > maxOfMinElements) { maxOfMinElements = minElements[i]; rowWithMaxOfMinElements = i; } } // Выводим результат std::cout << "Индексы наибольшего наименьшего элемента: " << rowWithMaxOfMinElements << ", "; for (int j = 0; j < M; ++j) { if (A[rowWithMaxOfMinElements][j] == maxOfMinElements) { std::cout << j << " "; } } return 0; }

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

Обратите внимание, что программа предполагает, что в каждой строке найдется только один элемент с наименьшим значением. Если в строке есть несколько одинаковых наименьших элементов, программа выведет индексы первого из них.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос