Вопрос по информатике:
C++ Дана матрица N × M. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким же образом поместить минимальный элемент в нижний правый угол.
- 23.09.2017 02:43
- Информатика
- remove_red_eye 7327
- thumb_up 10
Ответы и объяснения 1
Ну вот как-то так, если что-то не ясно - спрашивай. Инициализации начальных элементов нет, так что без соответствующей правки она не заработает.
int main() {
// Something
int a[n][m];
// Init
// Находим максимум
int im = 0, jm = 0, max = a[0][0];
for (int i = 0 ; i < n; ++i)
for (int j = 0; j < m; ++j)
if (a[i][j] > max) {
max = a[i][j];
im = i;
jm = j;
}
// Двигаем максимум вниз
swapCollumn(a, n, m, im, n-1);
swapRow(a, n, m, jm, m-1);
}
//Премещаем 2 столбца местами
void swapCollumn(int ** a, int n, int m, int c1, int c2) c1 >= n
//Перемещаем 2 строки местами
void swapRow(int ** a, int n, int m, int r1, int r2)
void swap(int * el1, int el2) {
int t = *el1;
*el1 = *el2;
*el2 = *el1;
}
- 24.09.2017 14:42
- thumb_up 30
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.