Пусть дана действительная матрица размером n*m. Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.
Написать код на с++. СПасибоо))
Ответы
Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int **arr,int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
arr[i][j] = rand() % 20 + 1;
}
}
}
void printarr(int **arr,int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cout << arr[i][j] << "\t";
}
cout << endl;
}
}
void lastrow(int **arr,int n,int m){
for(int i = 0; i < n - 1; i++){
for(int j = 0; j < m; j++){
arr[i][j] -= arr[n - 1][j];
}
}
}
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int n,m;
cout << "Введите кол-во строк n: ";
cin >> n;
cout << "Введите кол-во столбцов m: ";
cin >> m;
int **arr = new int *[n];
for (int i = 0; i < n; i++){
arr[i]=new int[m];
}
randarr(arr,n,m);
cout << "Матрица порядка " << n << "x" << m << ":" << endl;
printarr(arr,n,m);
lastrow(arr,n,m);
cout << "Результат: " << endl;
printarr(arr,n,m);
for (int i = 0; i < n; i++){
delete[]arr[i];
}
delete[]arr;
return 0;
}