Python 3.7
import re
import string
def clrStr(strng: str) -> str:
return re.sub(r' +', ' ', re.sub(rf'[{string.punctuation}]|\n', '', strng))
raw_string = input()
clean_string = clrStr(raw_string)
print(max(clean_string.split(' '), key = lambda p: len(p)))
И никаких велосипедов с перебором всего списка слов в цикле.
Объяснение:
Да, я специально решил эту задачу не так, как просят в условии. Ведь в условии вам максимально разжевали подход к решению. Но, стоит заметить, что по дурацки. Питоньи списки можно перебирать циклом вида for item in list, не обращаясь к исходному списку по индексам. Так же функция max() может принимать аргумент key, который является функцией, с которой интерпретатор будет выбирать максимум из указанного списка.
Язык Паскаль.
Program Ski;
const n=5; {длина массива}
var: a:array [1..n] of integer; i,s:integer;
begin
For i:=1 to n do begin
Writeln('vvedite element massiva nomer ',i);
Read(a[i]);
end; {Тут мы просим пользователя ввести элементы}
s:=0; {s - это указанная тобой сумма. Мы ее соответственно обнуляем сначала}
for i:=1 to n do begin
if a[i] mod 10=0 then s:=s+a[i];
end;
{ берем каждый элемент массива, и проверяем, делится ли он на 10 без остатка(mod- это остаток от деления на указанное число). Если все в порядке, тогда прибавляем число к общей сумме }
Writeln('summa elementov ravnih nulu ',s); {пишет ответ}
readln; {чтобы сразу не закрывалась программа}
end.
Если возникнут вопросы или появится еще подобное задание для решения, пиши прямо в личку. Мне все равно делать нечего )