#include
#include
using namespace std;
int** get_matrix(int rows,int columns) //Создание матрицы
{
int** matrix = new int*[rows];
for(int i = 0;i
{
matrix[i] = new int[columns];
}
return matrix;
}
void fill_matrix(int** matrix, int rows,int columns, int min = -100, int max = 200)//Заполнение матрицы случайными значениями в заданном диапазоне
{
srand(time(NULL));
for(int i = 0;i
{
for(int j = 0;j
{
matrix[i][j] = rand() % max + min;
}
}
}
int get_count_of_positive_numbers(int** matrix, int rows, int columns)
{
int count = 0;
for(int i = 0;i
{
for(int j = 0;j
{
if(i == j && matrix[i][j] > 0)
count++;
}
}
return count;
}
int *get_array_of_positive_numbers(int** matrix, int rows,int columns,int count)
{
int *array = new int[count];
int x = 0;
for(int i = 0;i
{
for(int j = 0;j
{
if(i == j && matrix[i][j] > 0)
array[x++] = matrix[i][j];
}
}
return array;
}
int main(int argc, char** argv) {
int rows = 5;
int columns = 5;
int** matrix = get_matrix(rows,columns);//Создаем матрицу
fill_matrix(matrix,rows,columns);//Заполняем ее случайными значениями
for(int i = 0;i
{
for(int j = 0;j
{
cout << matrix[i][j] << "\t";</p>
}
cout<<endl;</p>
}
int count_of_positive_numbers = get_count_of_positive_numbers(matrix,rows,columns); //Получаем количество положительных элементов в главной диагонали
int* positive_numbers = get_array_of_positive_numbers(matrix,rows,columns,count_of_positive_numbers);//Получаем массив с этими элементами
for(int i = 0;i
{
cout << positive_numbers[i] <<"\t";</p>
}
//Очищение памяти
for(int i = 0;i
{
delete[]matrix[i];
}
delete[]matrix;
delete[]positive_numbers;
return 0;
}