• Предмет: Информатика
  • Автор: Andrei3456789
  • Вопрос задан 1 год назад

написать программу, которая удаляет последнюю строку и столбец из матрицы c++

Ответы

Ответ дал: nazikmuz
1

Відповідь:

С++ code:

#include <iostream>

#include <cstdlib>

#include <time.h>

void randarr(int **array,const int row,const int cols){

for(int i = 0; i < row; i++){

 for(int j = 0; j < cols; j++){

  array[i][j] = rand() % 20 + 1;

 }

}

}

void printarr(int **array,const int row,const int cols){

for(int i = 0; i < row; i++){

 for(int j = 0; j < cols; j++){

  std::cout << array[i][j] << "\t";

 }

 std::cout << std::endl;

}

}

void delete_row_cols(int **array,int &row,int &cols){

row--;

cols--;

int **temp = new int *[row];

for (int i = 0; i < row; i++){

       temp[i]=new int[cols];

   }

   

for(int i = 0; i < row; i++){

 for(int j = 0; j < cols; j++){

  temp[i][j] = array[i][j];

 }

}

 

  for (int i = 0; i < cols; i++){

    delete[]array[i];

   }

   delete[]array;

 

array = new int *[row];

for (int i = 0; i < row; i++){

       array[i]=new int[cols];

   }

 

for(int i = 0; i < row; i++){

 for(int j = 0; j < cols ; j++){

   array[i][j] = temp[i][j];  

 }

}

 

for (int i = 0; i < row; i++){

    delete[]temp[i];

   }

   delete[]temp;

   

}

int main(){

int n,m;

std::cout << "Enter a number of rows: ";

std::cin >> n;

std::cout << "Enter a number of cols: ";

std::cin >> m;

int **arr = new int *[n];

for (int i = 0; i < n; i++){

       arr[i]=new int[m];

   }

randarr(arr,n,m);

printarr(arr,n,m);

std::cout << "Delete last row and cols" << std::endl;

delete_row_cols(arr,n,m);

printarr(arr,n,m);  

for (int i = 0; i < n; i++){

    delete[]arr[i];

   }

   delete[]arr;

return 0;

}

Пояснення:


ion20201: не могли бы вы мне помочь, пожалуйста
nazikmuz: С чем?
Вас заинтересует