СэмТV
05.02.2021 17:10

1 вариант Напишите программу, которая в последовательности натуральных чисел находит
среднее арифметическое чисели кратных8 или сообщает, что таких чисел нет
(выводит «NO»). Программа получает на вход натуральные числа, количество
введённых чисел неизвестно последовательность чисел заканчивается числом о
(О признак окончания ввода на Входит последовательность). Количество
чисел не превышает 100. Введенные числа не превышают 300. Программа
должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO»,
если таких чисел нет. Начение выводитисокинон до десятых.
Пример работы программы:
Входные данные Выходные данные
На с++
КР​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
egorbelov06
17.11.2020 22:06
Const maxn=15;
var a: array[1..maxn] of integer;
    skv,prod,gr,i: integer;
begin
  writeln('введите ',maxn,' чисел');
  skv:=0;  prod:=1;
  gr:=0;
  for i:=1 to maxn do
  begin
    write(i,': ');  readln(a[i]);
    if a[i]<0 then skv:=skv+a[i]*a[i];
    if (a[i] mod 2 = 0) and (i mod 2 = 0) then
       prod:=prod*a[i];
    if abs(a[i])>100 then gr:=gr+1;
  end;
  writeln('сумма квадратов отрицательных:  ',skv);
  writeln('произведение четных на четных местах:  ',prod);
  writeln('больше 100 по модулю:  ',gr);
end.

введите 15 чисел
1: 151
2: -231
3: 104
4: 19
5: 36
6: -112
7: 5
8: 8
9: 11
10: 13
11: 45
12: 5
13: 6
14: 17
15: 19
сумма квадратов отрицательных:  65905
произведение четных на четных местах:  -896
больше 100 по модулю:  4
0,0(0 оценок)
Ответ:
NadiaU0
17.11.2020 22:06
Любое произведение чисел будет четным, если оно содержит хотя бы оин четный сомножитель, поэтому задача сводится к определению того, есть ли в массиве хоть один четный элемент с нечетным порядковым номером.
Почему просто не попытаться перемножить эти элементы? Например потому, что максимальное целое значение в компьютерной математике ограничено количеством байт, отводимых для представления данных такого типа и редко превышает 2³². А представление с плавающей точкой - приближенное и проверять четность для подобных чисел часто оказывается бессмысленным.

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
  var a:=ArrRandom(10,-15,15); a.Println;
  if a.Where((x,i)->i.IsEven).Any(x->x.IsEven) then
    Writeln('Четное')
  else Writeln('Нечетное')
end.

Тестовое решение
13 3 5 4 15 7 -15 -4 7 12
Нечетное

Пояснения.
1. var a:=ArrRandom(10,-15,15); - описывается динамический массив "а", который создается и заполняется данными.
2. a.Println; - вывод элементов массива.
3. a.Where((x,i)->i.IsEven) выделяет из массива "а" элементы, у которых индекс четный (массив "а" - динамический и его элементы индексируются от нуля, поэтому элементы с нечетным порядковым номером имеют четные индексы).
Полученная последовательность элементов посредством Any(x->x.IsEven) проверяется на наличие хотя бы одного элемента с четным значением. Проверка возвращает логическое значение, на основе которого формируется вывод.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота