Из матрицы размером N×M получить вектор B, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по убыванию,
иначе 0
C/C++
С++ Помогите пожалуйста!
Вот пример кода на C++, который можно использовать для создания вектора B из матрицы размера NxM, где k-й элемент вектора устанавливается в 1, если элементы k-й строки матрицы расположены в порядке убывания, и 0 в противном случае:
#include <iostream>
#include <vector>
int main() {
// Инициализируем матрицу размером NxM
const int N = 3;
const int M = 4;
int matrix[N][M] = { {1, 2, 3, 4},
{4, 3, 2, 1},
{1, 1, 1, 1} };
// Инициализируем пустой вектор B
std::vector<int> B;
B.resize(N);
// Перебор строк матрицы
for (int i = 0; i < N; i++) {
// Предполагаем, что строки расположены в порядке убывания
bool decreasing = true;
// Перебираем элементы строки
for (int j = 0; j < M-1; j++) {
// Если текущий элемент не больше следующего элемента, то ряд не находится в порядке убывания
if (matrix[i][j] <= matrix[i][j+1]) {
decreasing = false;
break;
}
}
// Установите k-й элемент вектора B в 1, если ряд идет по убыванию, 0 в противном случае
B[i] = decreasing ? 1 : 0;
}
// Вывести вектор B
for (int k : B) {
std::cout << k << " ";
}
std::cout << std::endl;
return 0;
}
Этот код должен вывести следующий вектор:
0 1 0
#include <iostream>
#include <vector>
int main() {
// Инициализируем матрицу размером NxM
const int N = 3;
const int M = 4;
int matrix[N][M] = { {1, 2, 3, 4},
{4, 3, 2, 1},
{1, 1, 1, 1} };
// Инициализируем пустой вектор B
std::vector<int> B;
B.resize(N);
// Перебор строк матрицы
for (int i = 0; i < N; i++) {
// Предполагаем, что строки расположены в порядке убывания
bool decreasing = true;
// Перебираем элементы строки
for (int j = 0; j < M-1; j++) {
// Если текущий элемент не больше следующего элемента, то ряд не находится в порядке убывания
if (matrix[i][j] <= matrix[i][j+1]) {
decreasing = false;
break;
}
}
// Установите k-й элемент вектора B в 1, если ряд идет по убыванию, 0 в противном случае
B[i] = decreasing ? 1 : 0;
}
// Вывести вектор B
for (int k : B) {
std::cout << k << " ";
}
std::cout << std::endl;
return 0;
}
Этот код должен вывести следующий вектор:
0 1 0
Похожие вопросы
- Помоги пожалуйста с программой в С++
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста уже голову сломал, ничего не получается, когда перегружаю шаблонный оператор << ,
- Помогите пожалуйста написать код.(C++)
- Задачки по С++ (помогите пожалуйста кто какие сможет)
- Помогите пожалуйста с программой
- Помогите пожалуйста с C++
- Помогите пожалуйста решить задачу на языке С#.
- Помогите пожалуйста составить задачу на программе С++
- Помогите, пожалуйста решить на C++, используя многомерные статические массивы
С наступающим новым годом!