Количество и сумма элементов массива, принадлежащих интервалу
Задача
Найдите сумму и количество элементов массива, попавших в интервал [a; b]. Границы интервала вводятся с клавиатуры.
Решение
Пусть переменная qty содержит количество элементов, попавших в заданный интервал, а переменная sum сумму этих элементов. В цикле будем проверять каждый элемент на то, что его значение одновременно больше либо равно нижней границе диапазона и меньше или равно верхней. Если это так, то элемент принадлежит заданному интервалу и его значение следует добавить к переменной sum, а qty увеличить на 1.
В программе можно предусмотреть обмен значениями переменных a и b на случай, если сначала может быть указана верхняя граница интервала.
const N = 20; var arr: array[1..N] of integer; i, qty: byte; a, b, c, sum: integer; begin randomize; for i:=1 to N do begin arr[i] := random(100)-50; write(arr[i]:4); end; writeln; write('Интервал: '); readln(a, b); if a > b then begin c := a; a := b; b := c; end; qty := 0; sum := 0; for i:=1 to N do if (arr[i] >= a) and (arr[i] <= b) then begin qty := qty + 1; sum := sum + arr[i]; end; writeln('Количество: ', qty); writeln('Сумма: ', sum); end.
Пример выполнения кода:
-25 -28 41 35 28 33 -46 35 2 -35 -49 49 -31 5 34 -46 -32 -40 -14 5 Интервал: 5 -10 Количество: 3 Сумма: 12