Найти сумму всех четных и произведение нечетных из 10-ти введенных чисел с клавиатуры - C (СИ)
Формулировка задачи:
uses crt;
var x, j, p, s: integer;
begin
p:=1; s:=0;
for j:=1 to 10 do
begin
read (x);
if x mod 2=0 then s:=s+x
else p:=p*x;
end;
writeln ('p', p , '' , 's=' , s);
end.Решение задачи: «Найти сумму всех четных и произведение нечетных из 10-ти введенных чисел с клавиатуры»
textual
Листинг программы
#include <stdio.h>
int main()
{
int p = 1, s = 0, j, x;
for (j = 0; j < 10; ++j)
{
scanf("%d", &x);
s += (!(x & 1)) * x;
p *= (x - 1) * (x & 1) + 1;
}
printf("p=%d s=%d\n", p, s);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- В первой строке объявлены три переменные: p, s и j. Переменная p инициализируется единицей, а переменные s и j инициализируются нулем.
- Затем в цикле for, который выполняется 10 раз, происходит следующее:
- В каждой итерации цикла пользователю предлагается ввести число с клавиатуры и сохранить его в переменной x.
- Затем значение переменной s увеличивается на произведение нечетного числа (которое проверяется с помощью оператора & 1) на введенное число.
- Значение переменной p увеличивается на (введенное число - 1) умноженное на (нечетность числа, проверенную с помощью оператора & 1) плюс 1.
- После завершения цикла выводятся значения переменных p и s.
- Программа завершается, и возвращается 0. Список переменных и их значений:
- p = 1
- s = 0
- j = 0
- x = введенное число