Из каждого элемента матрицы вычесть произведение ее четных отрицательных элементов - C (СИ)
Формулировка задачи:
Из каждого элемента матрицы A(3,3) вычесть произведение ее чет-
ных отрицательных элементов
Решение задачи: «Из каждого элемента матрицы вычесть произведение ее четных отрицательных элементов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int ** zap(int ** matrica){
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
printf("[%i][%i] = ");
scanf_s("%i", &matrica[i][j]);
}
}
return matrica;
}
int pro(int ** matrica){
int p = 1;
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
if (matrica[i][j] < 0 && matrica[i][j] % 2 == 0)
p *= matrica[i][j];
}
}
return p;
}
int ** vic(int ** matrica, int s){
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
matrica[i][j] -= s;
}
}
return matrica;
}
int main(){
int ** matrica = new int*[3];
for (int i = 0; i < 3; i++){
matrica[i] = new int[3];
}
matrica = zap(matrica);
matrica = vic(matrica, pro(matrica));
_getch();
return 0;
}
Объяснение кода листинга программы
- В функции
zapпроисходит заполнение матрицы случайными числами с помощью функцииscanf_s. - В функции
proпроисходит перебор элементов матрицы и вычисление произведения четных отрицательных элементов. - В функции
vicпроисходит вычитание из каждого элемента матрицы произведения четных отрицательных элементов. - В функции
mainсоздается динамический массив для хранения адресов матрицы, затем происходит заполнение матрицы с помощью функцииzap. - Затем результат функции
proиспользуется в функцииvicдля вычитания из каждого элемента матрицы произведения четных отрицательных элементов. - В конце программы вызывается функция
_getchдля приостановки выполнения программы до нажатия клавиши.