Дана матрица x(m,m). запомнить в массиве z положительные элементы главной диагонали написать программу на c++
Ответы на вопрос:
#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;
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Leha920215.03.2020 18:42
-
Дмитрий11111111222202.01.2022 10:03
-
KALINACHKA11.11.2022 17:37
-
belover01.09.2022 03:48
-
pagan1977sanyap0apdo13.10.2022 20:03
-
inferatu77726.10.2020 04:11
-
arave108.06.2020 07:30
-
Ahha11801.02.2021 14:58
-
EvaMr25.05.2022 00:24
-
даниил85126.05.2020 22:25
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.