М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
simakovk9
simakovk9
08.05.2022 07:58 •  Информатика

Дана матрица x(m,m). запомнить в массиве z положительные элементы главной диагонали написать программу на c++

👇
Ответ:
lebrov
lebrov
08.05.2022

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

}

4,4(69 оценок)
Открыть все ответы
Ответ:
nat102sult
nat102sult
08.05.2022
                                                          профессия  на открытом воздухе       в помещениях     в небольших         в небольших                                                                         замкнутых             условиях                                                                          пространство.       труда
4,7(99 оценок)
Ответ:
2001snk
2001snk
08.05.2022
Пусть a, b, c − число пассажиров каждой из маршруток. тогда, нужно во-первых: выяснить можно ли поделить пассажиров поровну между тремя маршрутками; во-вторых: если первое утверждение верно, то k : = (a + b + c) div 3; − число пассажиров, которое должно приходиться на 1 маршрутку sum : = 0; − счётчик пересаживаемых пассажиров da : = a - k; if da > 0 then sum : = sum + da; db : = b - k; if db > 0 then sum : = sum + db; dc : = c - k; if dc > 0 then sum : = sum + dc; − если разница числа пассажиров и количества, которое должно быть в маршрутке, число положительное, значит столько пассажиров из данной маршрутки необходимо пересадить. что то типа дальше сама
4,7(18 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ