Предмет: Информатика, автор: sdhgauhgipuhrie

C++ Срочно
Дан двумерный массив целых чисел. Все отрицательные элементы массива умножить на первый элемент соответствующей строки.

Ответы

Автор ответа: Koljisto
0

Программа работает с учётом того, что если первый элемент отрицательный, то он умножается сам на себя и потом все последующие элементы умножаются уже на новый первый элемент в массиве, который умножился сам на себя. Так что такие большие цифры обусловлены именно этим.

#include <iostream>

#include <time.h>

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;

}

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

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

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

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

   arr[i][j] = arr[i][j] * arr[i][0];

  }

 }

}

return arr;

}

int main() {

srand(time(NULL));

setlocale(LC_ALL, "Russian");

int n, m;

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

cin >> n;

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

cin >> m;

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

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

array = multiplying_negative_elements_of_an_array_by_the_first_element(array, n, m);

print_array(array, n, m);

delete[] array;

}

Похожие вопросы
Предмет: Математика, автор: nikita20062401
Предмет: Математика, автор: natalialyngy