#arr = [*map(int, input().split(' 0')[0].split())] если числа вводятся в строчку , то раскомментируйте и используйте эту строку, а инициализацию массива arr и цикл while закомментируйте
arr = []
while 1:
tmp = int(input())
if tmp != 0: # Читаем сколько угодно чисел пока не будет ноль
arr.append(tmp)
else:
break
s = 0 # сумма двузначных чисел
k = 0 # количество двузначных чисел
for i in arr:
if 10 <= i <= 99: # итерируемся по циклу и если число двузначное
s += i # то прибавляем его к сумме
k += 1 # счетчик двузначный чисел увеличиваем на один
print(s/k) if k > 0 else print('NO') #если количество двузначных > 0 то выводим среднее арифметическое s/k, если нет то выводим NO
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
begin var a:=ReadArrInteger(30); Writeln('1. Количество четных ',a.Where(t->t.IsEven).Count); var s:=a.Where(t->(t mod 3=0) and (t mod 9<>0) and t.Between(10,99)); Write('2. Мудреное среднее арифметическое '); if s.Count=0 then Writeln(-1) else Writeln(s.Average); Write('3. Наибольшая длина цепочки четных элементов '); var (l,l1):=(-1,0); foreach var t in a do if t.IsEven then l1+=1 else begin l:=Max(l,l1); l1:=0 end; Writeln(l); var k:=ReadInteger('4. Номер удаляемого элемента (1-30):')-1; Writeln('Массив после удаления элемента'); a:=a?[:k]+a?[k+1:]; a.Println; Write('5. Второй максимум '); a.OrderByDescending(t->t).Skip(1).Take(1).Println end.
#arr = [*map(int, input().split(' 0')[0].split())] если числа вводятся в строчку , то раскомментируйте и используйте эту строку, а инициализацию массива arr и цикл while закомментируйте
arr = []
while 1:
tmp = int(input())
if tmp != 0: # Читаем сколько угодно чисел пока не будет ноль
arr.append(tmp)
else:
break
s = 0 # сумма двузначных чисел
k = 0 # количество двузначных чисел
for i in arr:
if 10 <= i <= 99: # итерируемся по циклу и если число двузначное
s += i # то прибавляем его к сумме
k += 1 # счетчик двузначный чисел увеличиваем на один
print(s/k) if k > 0 else print('NO') #если количество двузначных > 0 то выводим среднее арифметическое s/k, если нет то выводим NO
Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadArrInteger(30);
Writeln('1. Количество четных ',a.Where(t->t.IsEven).Count);
var s:=a.Where(t->(t mod 3=0) and (t mod 9<>0) and t.Between(10,99));
Write('2. Мудреное среднее арифметическое ');
if s.Count=0 then Writeln(-1) else Writeln(s.Average);
Write('3. Наибольшая длина цепочки четных элементов ');
var (l,l1):=(-1,0);
foreach var t in a do
if t.IsEven then l1+=1
else begin
l:=Max(l,l1);
l1:=0
end;
Writeln(l);
var k:=ReadInteger('4. Номер удаляемого элемента (1-30):')-1;
Writeln('Массив после удаления элемента');
a:=a?[:k]+a?[k+1:]; a.Println;
Write('5. Второй максимум ');
a.OrderByDescending(t->t).Skip(1).Take(1).Println
end.
Пример
40 -116 91 -47 14 -10 -88 81 92 -106 121 133 -49 69 50 -60 49 57 30 49 60 106 -94 50 -32 -52 -60 -96 148 -49
1. Количество четных 19
2. Мудреное среднее арифметическое 54
3. Наибольшая длина цепочки четных элементов 9
4. Номер удаляемого элемента (1-30): 7
Массив после удаления элемента
40 -116 91 -47 14 -10 81 92 -106 121 133 -49 69 50 -60 49 57 30 49 60 106 -94 50 -32 -52 -60 -96 148 -49
5. Второй максимум 133