Из каждого элемента матрицы вычесть сумму ее четных положительных элементов - C (СИ)
Формулировка задачи:
Из каждого элемента матрицы A(3,3) вычесть сумму ее четных по-
ложительных элементов
помогите пожалуйста
Решение задачи: «Из каждого элемента матрицы вычесть сумму ее четных положительных элементов»
textual
Листинг программы
#include <stdio.h>
#define N 3
void fill_matrix(int matrix[][N])
{
int i,j;
for (i=0; i<N; ++i)
for (j=0; j<N; ++j) {
printf("matrix[%i][%i] = ", i, j);
scanf("%i%*c", &matrix[i][j]);
}
}
void print_matrix(int matrix[][N])
{
int i,j;
printf("\n");
for (i=0; i<N; ++i) {
for (j=0; j<N; ++j)
printf("%3i ", matrix[i][j]);
printf("\n");
}
}
int get_sum(int matrix[][N])
{
int result = 0;
int i,j;
for (i=0; i<N; ++i)
for (j=0; j<N; ++j)
if (matrix[i][j]>0 && !(matrix[i][j]%2))
result += matrix[i][j];
return result;
}
void minus_sum(int matrix[][N], int sum)
{
int i,j;
for (i=0; i<N; ++i)
for (j=0; j<N; ++j)
matrix[i][j] -= sum;
}
int main(void)
{
int matrix[N][N];
int sum;
fill_matrix(matrix);
print_matrix(matrix);
sum = get_sum(matrix);
minus_sum(matrix, sum);
print_matrix(matrix);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Задаётся размерность матрицы N=3.
- В функции fill_matrix происходит заполнение матрицы случайными числами.
- В функции print_matrix происходит вывод матрицы на экран в 12 столбцов (для лучшей читаемости).
- В функции get_sum происходит вычисление суммы четных положительных элементов матрицы.
- В функции minus_sum происходит вычитание из каждого элемента матрицы суммы четных положительных элементов.
- В функции main происходит заполнение матрицы, вывод её на экран, вычисление суммы четных положительных элементов и вычитание этой суммы из каждого элемента матрицы, повторный вывод матрицы.
Код решает задачу
вычитания суммы четных положительных элементов из каждого элемента матрицы.