Пусть дана действительная матрица размером n*m. Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.
Написать код на с++. СПасибоо))


nazikmuz: Делаю

Ответы

Ответ дал: nazikmuz
0

Відповідь:

#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;                          

}

Похожие вопросы