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

Ответы на вопрос

Программа работает с учётом того, что если первый элемент отрицательный, то он умножается сам на себя и потом все последующие элементы умножаются уже на новый первый элемент в массиве, который умножился сам на себя. Так что такие большие цифры обусловлены именно этим.
#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;
}



Для решения данной задачи на языке программирования 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]; } } ```
Этот код позволит пользователю ввести значения для каждого элемента массива с клавиатуры перед выполнением операции умножения.
Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.


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