#include <iostream>
#include <ctime>
using namespace std;
int** get_matrix(int rows,int columns) //Создание матрицы
{
int** matrix = new int*[rows];
for(int i = 0;i<rows;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 j = 0;j<columns;j++)
matrix[i][j] = rand() % max + min;
int get_count_of_positive_numbers(int** matrix, int rows, int columns)
int count = 0;
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;
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);//Заполняем ее случайными значениями
cout << matrix[i][j] << "\t";
cout<<endl;
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<count_of_positive_numbers;i++)
cout << positive_numbers[i] <<"\t";
//Очищение памяти
delete[]matrix[i];
delete[]matrix;
delete[]positive_numbers;
return 0;
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
#include <iostream>
#include <ctime>
using namespace std;
int** get_matrix(int rows,int columns) //Создание матрицы
{
int** matrix = new int*[rows];
for(int i = 0;i<rows;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<rows;i++)
{
for(int j = 0;j<columns;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<rows;i++)
{
for(int j = 0;j<columns;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<rows;i++)
{
for(int j = 0;j<columns;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<rows;i++)
{
for(int j = 0;j<columns;j++)
{
cout << matrix[i][j] << "\t";
}
cout<<endl;
}
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<count_of_positive_numbers;i++)
{
cout << positive_numbers[i] <<"\t";
}
//Очищение памяти
for(int i = 0;i<rows;i++)
{
delete[]matrix[i];
}
delete[]matrix;
delete[]positive_numbers;
return 0;
}