Подсчет суммы положительных элементов массива - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
int main() {
int A[MAX][MAX] = {0};
int B[MAX] = {0};
int AB[MAX] = {0};
int i, j;
int n;
system("chcp 1251 > nul");
printf("\n Razmer matricy i vektora: ", MAX);
scanf("%d", &n);
printf("\n Vvedite elementy matrix A:\n ----------\n");
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
printf ("Element [%d,%d]=", i,j);
scanf_s ("%d", &A[i][j]);
}
printf("\n");
}
printf("\n Matrix A:\n ----------\n");
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
printf(" [%2d]", A[i][j]);
}
printf("\n");
}
printf("\n Vvedite elementy vectora:\n ---------\n");
for(j = 0; j < n; j++)
{
scanf("%d", &B[j]);
}
printf("\n");
printf("\n Vektor B:\n ---------\n");
for(j = 0; j < n; j++) {
printf(" [%2d]", B[j]);
}
printf("\n");
for(i = 0; i < n; i++) {
AB[i] = 0;
for(j = 0; j < n; j++) {
AB[i] = AB[i] + (A[i][j] * B[i]);
}
}
printf("\n Vektor C = A * B:\n ------------------\n");
for(i = 0; i < n; i++) {
printf(" [%d]", AB[i]);
}
printf("\n");
getchar();getchar();
}Решение задачи: «Подсчет суммы положительных элементов массива»
textual
Листинг программы
// получение и вывод суммы, добавь после 63-й строки
s = 0;
for(i = 0; i < n; i++) {
if (AB[i] > 0)
s += AB[i];
}
printf("\n Summa polozhitelnih elementov: %d\n", s);
Объяснение кода листинга программы
- В начале кода объявляется массив AB типа int, размер которого определяется переменной n.
- Затем выполняется цикл for, который проходит по всем элементам массива AB.
- Внутри цикла проверяется условие AB[i] > 0, которое определяет, является ли текущий элемент положительным числом.
- Если условие выполняется, то к переменной s прибавляется значение текущего элемента AB[i].
- После завершения цикла выводится сообщение с помощью функции printf, которое содержит сумму положительных элементов массива AB, равную переменной s.