Вопрос задан 11.01.2020 в 00:29. Предмет Информатика. Спрашивает Ионов Костя.

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

элемент соответствующей строки.
0 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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи на языке программирования C++ можно использовать следующий код:

```cpp #include

const int ROWS = 3; // количество строк в массиве const int COLS = 4; // количество столбцов в массиве

void multiplyNegativeElements(int arr[ROWS][COLS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { if (arr[i][j] < 0) { arr[i][j] *= arr[i][0]; } } } }

int main() { int arr[ROWS][COLS] = { {1, -2, 3, -4}, {-5, 6, -7, 8}, {9, -10, 11, -12} };

multiplyNegativeElements(arr);

// Вывод измененного массива for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { std::cout << arr[i][j] << " "; } std::cout << std::endl; }

return 0; } ```

В данном коде мы объявляем двумерный массив `arr` размером 3x4 и инициализируем его значениями. Затем мы вызываем функцию `multiplyNegativeElements`, которая проходит по каждому элементу массива и, если элемент отрицательный, умножает его на первый элемент соответствующей строки. После этого мы выводим измененный массив на экран.

Примечание: В данном примере предполагается, что массив уже заполнен значениями. Если вам нужно ввести значения массива с клавиатуры, вы можете использовать стандартный ввод/вывод C++.

Например, вы можете добавить следующий код перед вызовом функции `multiplyNegativeElements`:

```cpp // Ввод значений массива с клавиатуры for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { std::cout << "Введите значение для arr[" << i << "][" << j << "]: "; std::cin >> arr[i][j]; } } ```

Этот код позволит пользователю ввести значения для каждого элемента массива с клавиатуры перед выполнением операции умножения.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос