Помогите пожалуйста с задачей на двумерный массив!!!
Нужно найти в матрице первую строку, все элементы которой упорядочены по убыванию. Изменить упорядоченность элементов этой строки на обратную.
Ответы
#include <iostream>
#include <algorithm>
int main() {
const int N = 3; // размерность матрицы (NxN)
int matrix[N][N];
// ввод элементов матрицы с клавиатуры
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
std::cin >> matrix[i][j];
}
}
// поиск первой строки, упорядоченной по убыванию
for (int i = 0; i < N; i++) {
bool is_sorted = true; // флаг, обозначающий, что строка упорядочена
for (int j = 0; j < N - 1; j++) {
// если текущий элемент больше следующего, то строка не упорядочена
if (matrix[i][j] < matrix[i][j + 1]) {
is_sorted = false;
break;
}
}
// если строка упорядочена, то изменяем упорядоченность элементов на обратную
if (is_sorted) {
std::reverse(matrix[i], matrix[i] + N);
break; // выходим из цикла
}
}
// вывод элементов матрицы на экран
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
}