Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача c++ .В заданном двумерном массиве чисел A, состоящем из n строк и m столбцов, необходимо найти номер столбца...

upbsoeu1 upbsoeu1 Ученик (209), открыт 1 неделю назад
В заданном двумерном массиве чисел A, состоящем из n строк и m столбцов, необходимо найти номер столбца, в котором находится максимальный элемент матрицы. Затем требуется поменять местами первый столбец с найденным.

Если в массиве существует несколько максимальных элементов, требуется выбрать такой, что номер его строки минимален. Если же и таких элементов несколько, требуется выбрать такой, что номер его столбца минимален.

Входные данные
В первой строек задается два целых числа n и m (1 ≤ n, m ≤ 100).

Далее следует n строк. В строке с номером i через пробел задается m целых чисел A(i,1),A(i,2)....A(i,m) (-100 ≤ A(i,j) ≤ 100)

Выходные данные
Выведите n строк по m чисел в каждой — элементы массива A после обмена столбцов. Числа в строках разделяйте пробелами.
1 ответ
_Fire_of_Death_ Гуру (4103) 1 неделю назад
 #include  
#include
#include

using namespace std;

int main() {
int n, m;
cin >> n >> m;

vector> A(n, vector(m));

// Ввод массива
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> A[i][j];
}
}

int maxElement = INT_MIN;
int maxRow = -1;
int maxCol = -1;

// Поиск максимального элемента и его координат
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (A[i][j] > maxElement || (A[i][j] == maxElement && i < maxRow) ||
(A[i][j] == maxElement && i == maxRow && j < maxCol)) {
maxElement = A[i][j];
maxRow = i;
maxCol = j;
}
}
}

// Обмен столбца с максимальным элементом и первого столбца
for (int i = 0; i < n; ++i) {
swap(A[i][0], A[i][maxCol]);
}

// Вывод результирующего массива
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << A[i][j] << " ";
}
cout << endl;
}

return 0;
}
Похожие вопросы