Всем доброго времени суток, решаю задачу на с++ нужно найти максимальный элемент в матрице и строку с этим элементом заменить на предпоследний столбик, но если максимальный элемент расположен не в последней строке матрицы, то при замене почему то предпоследний элемент строки и столбца заменяется на случайное число из матрицы, что делать?
код и тесты ниже:
void replaceColumn(int** matrix, int size) {
int maxRow = 0;
int maxElement = 0;
// Находим строку с максимальным элементом
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
if (matrix[i][j] > maxElement) {
maxElement = matrix[i][j];
maxRow = i;
}
}
}
// Заменяем предпоследний столбец найденной строки
for (int i = 0; i < size; i++) {
matrix[i][size - 2] = matrix[maxRow][i];
}
тесты:
Исходная матрица:
49 69 74 40 74
83 88 45 9 46
93 3 98 22 90
6 50 59 57 20
52 2 59 28 21
Матрица после замены столбца:
49 69 74 93 74
83 88 45 3 46
93 3 98 98 90
6 50 59 98 20
52 2 59 90 21
И вот если макс элемент в последней строке:
Исходная матрица:
42 65 84 84 42
84 83 76 53 58
67 2 72 15 76
45 48 3 65 52
7 74 98 6 29
Матрица после замены столбца:
42 65 84 7 42
84 83 76 74 58
67 2 72 98 76
45 48 3 6 52
7 74 98 29 29