Дана целочисленная прямоугольная матрица
1) Определить номер последней из строк, содержащих хотя бы один четный элемент
2) Получить новую матрицу, путем замены первой строки и последнего столбца исходной матрицы.
C/C++
Помогите пожалуйста решить лабараторную по программированию С++
Вот решение вашей лабораторной работы на C++:
#include
#include
using namespace std;
int main() {
// Инициализируем матрицу размером 3x4 и заполняем ее значениями
vector matrix = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// 1) Определить номер последней из строк, содержащих хотя бы один четный элемент
int last_row_with_even = -1; // Номер последней строки с четным элементом
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
if (matrix[i][j] % 2 == 0) {
last_row_with_even = i;
break;
}
}
}
cout
1) Определить номер последней из строк, содержащих хотя бы один четный элемент:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m, lastEvenRow = -1; // инициализируем lastEvenRow значением -1, чтобы позже можно было проверить, были ли обнаружены четные элементы в матрице
cout << "Введите количество строк и столбцов матрицы: ";
cin >> n >> m;
int matrix[n][m];
cout << "Введите элементы матрицы: ";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] % 2 == 0) { // если нашли четный элемент
lastEvenRow = i; // запоминаем номер строки
break; // выходим из цикла по столбцам для этой строки
}
}
}
if (lastEvenRow != -1) {
cout << "Номер последней из строк, содержащих хотя бы один четный элемент: " << lastEvenRow + 1; // +1, чтобы начинать отсчет строк с 1, а не с 0
} else {
cout << "Четных элементов в матрице не найдено";
}
return 0;
}
```
2) Получить новую матрицу, путем замены первой строки и последнего столбца исходной матрицы:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cout << "Введите количество строк и столбцов матрицы: ";
cin >> n >> m;
int matrix[n][m];
cout << "Введите элементы матрицы: ";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
// меняем местами первую строку и последний столбец
int temp;
for (int j = 0; j < m; j++) {
temp = matrix[0][j];
matrix[0][j] = matrix[n-1][j];
matrix[n-1][j] = temp;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
Оба примера используют двумерный массив для представления матрицы и вложенные циклы для выполнения необходимых операций. Решения работают корректно только при условии, что пользователь вводит корректные значения размеров матрицы и ее элементов.
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m, lastEvenRow = -1; // инициализируем lastEvenRow значением -1, чтобы позже можно было проверить, были ли обнаружены четные элементы в матрице
cout << "Введите количество строк и столбцов матрицы: ";
cin >> n >> m;
int matrix[n][m];
cout << "Введите элементы матрицы: ";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] % 2 == 0) { // если нашли четный элемент
lastEvenRow = i; // запоминаем номер строки
break; // выходим из цикла по столбцам для этой строки
}
}
}
if (lastEvenRow != -1) {
cout << "Номер последней из строк, содержащих хотя бы один четный элемент: " << lastEvenRow + 1; // +1, чтобы начинать отсчет строк с 1, а не с 0
} else {
cout << "Четных элементов в матрице не найдено";
}
return 0;
}
```
2) Получить новую матрицу, путем замены первой строки и последнего столбца исходной матрицы:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cout << "Введите количество строк и столбцов матрицы: ";
cin >> n >> m;
int matrix[n][m];
cout << "Введите элементы матрицы: ";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
// меняем местами первую строку и последний столбец
int temp;
for (int j = 0; j < m; j++) {
temp = matrix[0][j];
matrix[0][j] = matrix[n-1][j];
matrix[n-1][j] = temp;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
Оба примера используют двумерный массив для представления матрицы и вложенные циклы для выполнения необходимых операций. Решения работают корректно только при условии, что пользователь вводит корректные значения размеров матрицы и ее элементов.
S T
Спасибо большое
Похожие вопросы
- Программирование С++. Помогите, пожалуйста, решить задачу.
- Помогите пожалуйста решить задачу на языке С#.
- Помогите, пожалуйста решить на C++, используя многомерные статические массивы
- Помогите пожалуйста решить задачу по с++
- Помогите пожалуйста решить задачу на Си
- Помогите пожалуйста сделать задачу по программированию C++
- Помогите, пожалуйста, с заданием по программированию.
- Помогите пожалуйста с задачей по программированию на С++.
- Помогите пожалуйста решить задачку по C++, напишите полный текст кода пожалуйста
- Помогите, пожалуйста, решить задачу.