Дана действительная матрица размером n x m. Преобразовать эту матрицу, поэлементно вычитая значение последней строки из значений всех ее строк, кроме последней. НА СИ! Пожалуйста :)
#include <iostream> #include <vector> void transformMatrix(std::vector<std::vector<double>>& matrix) { int n = matrix.size(); int m = matrix[0].size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < m; j++) { matrix[i][j] -= matrix[n - 1][j]; } } } int main() { int n, m; std::cout << "Enter the number of rows: "; std::cin >> n; std::cout << "Enter the number of columns: "; std::cin >> m; std::vector<std::vector<double>> matrix(n, std::vector<double>(m)); std::cout << "Enter the matrix elements row by row:\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { std::cin >> matrix[i][j]; } } transformMatrix(matrix); std::cout << "Transformed matrix:\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { std::cout << matrix[i][j] << " "; } std::cout << std::endl; } return 0; }
#include <vector>
void transformMatrix(std::vector<std::vector<double>>& matrix) {
int n = matrix.size();
int m = matrix[0].size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] -= matrix[n - 1][j];
}
}
}
int main() {
int n, m;
std::cout << "Enter the number of rows: ";
std::cin >> n;
std::cout << "Enter the number of columns: ";
std::cin >> m;
std::vector<std::vector<double>> matrix(n, std::vector<double>(m));
std::cout << "Enter the matrix elements row by row:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
std::cin >> matrix[i][j];
}
}
transformMatrix(matrix);
std::cout << "Transformed matrix:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
Пример ввода:
3 31 2 3
4 5 6
7 8 9
Вывод:
-6 -6 -6-3 -3 -3
7 8 9