В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
young22228
young22228
29.01.2023 06:39 •  Информатика

Вычислить произведение положительных элементов. определить индексы максимального элемента.(c++,двумерный массив)

Показать ответ
Ответ:
GriefSS
GriefSS
10.10.2020 14:11

#include <iostream>

#include <time.h>

#include <vector>

using namespace std;

void print_array(int** arr, int n, int m) {

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

 for (size_t j = 0; j < m; j++) {

  cout << arr[i][j] << " ";

 }

 cout << endl;

}

cout << endl;

}

int** auto_input_matrix(int** arr, int n, int m) {

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

 for (size_t j = 0; j < m; j++) {

  arr[i][j] = rand() % 200 - 100;

 }

}

return arr;

}

void print_vector(vector<long long> vec) {

for (long long elem : vec) {

 cout << elem << " ";

}

cout << endl;

}

void print_vector(vector<int> vec) {

for (int elem : vec) {

 cout << elem << " ";

}

cout << endl;

}

pair<vector<long long>, vector<int>> multiplying_positive_elements_of_an_array_and_find_max_of_an_array_line_by_line(int** arr, int n, int m) {

long long multi = 0;

bool key = false;

int max = -100;

int index = 0;

vector<long long> vec_multi;

vector<int> vec_max_index;

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

 for (size_t j = 0; j < m; j++) {

  if (arr[i][j] > max) {

   max = arr[i][j];

   index = j;

  }

  if (arr[i][j] > 0) {

   if (!key) {

    multi = 1;

   }

   key = true;

   multi *= arr[i][j];

  }

 }

 vec_max_index.push_back(index);

 vec_multi.push_back(multi);

 max = -100;

 key = false;

}

return make_pair(vec_multi, vec_max_index);

}

int main() {

srand(time(NULL));

setlocale(LC_ALL, "Russian");

int n, m;

cout << "Введите количество строк в массиве: ";

cin >> n;

cout << "Введите количество элементов в массиве построчно: ";

cin >> m;

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

pair<vector<long long>, vector<int>> pair_vec;

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

 array[i] = new int[m];

}

array = auto_input_matrix(array, n, m);

print_array(array, n, m);

pair_vec = multiplying_positive_elements_of_an_array_and_find_max_of_an_array_line_by_line(array, n, m);

cout << "Перемножение построчно: " << endl;

print_vector(pair_vec.first);

cout << "Максимумы на индексах: " << endl;

print_vector(pair_vec.second);

delete[] array;

pair_vec.first.clear();

pair_vec.second.clear();

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота