Найти слово с максимальным количеством согласных. Заменить этим словом предпоследнее слово строки. Это Паскаль
Answers & Comments
sellsaccountvar a, b, c, i, n, m, j :integer; s, p, q: string; begin read (s); a:=1;for i:=1 to length (s) do begin if s[i]=' ' then begin b:=i-a; c:=0; p:=copy(s,a,b); a:=i+1; for j:=1 to length (p) do if (p[j]<>'у') and (p[j]<>'У') and (p[j]<>'е') and (p[j]<>'Е') and (p[j]<>'ы') and (p[j]<>'Ы') and (p[j]<>'а') and (p[j]<>'А') and (p[j]<>'о') and (p[j]<>'О') and (p[j]<>'э') and (p[j]<>'Э') and (p[j]<>'я') and (p[j]<>'Я') and (p[j]<>'и') and (p[j]<>'И') and (p[j]<>'') and (p[j]<>'Ю') then inc(c); if c>=m then begin m:=c; q:=p; end; end; end; a:=length (s); while s[a]<>' ' do begin delete (s,a,1); a:=a-1; end; write (s, q); end.
P.S. Надеюсь на благодарность и лучший ответ.
3 votes Thanks 4
sellsaccount
кстати, хорошая задача, строки одни из самых сложных тем в программировании.
Answers & Comments
s, p, q: string;
begin
read (s);
a:=1;for i:=1 to length (s) do
begin
if s[i]=' ' then
begin
b:=i-a;
c:=0;
p:=copy(s,a,b);
a:=i+1; for j:=1 to length (p) do
if (p[j]<>'у') and (p[j]<>'У') and (p[j]<>'е') and (p[j]<>'Е') and (p[j]<>'ы') and (p[j]<>'Ы') and (p[j]<>'а') and (p[j]<>'А') and (p[j]<>'о') and (p[j]<>'О') and (p[j]<>'э') and (p[j]<>'Э') and (p[j]<>'я') and (p[j]<>'Я') and (p[j]<>'и') and (p[j]<>'И') and (p[j]<>'') and (p[j]<>'Ю') then inc(c);
if c>=m then
begin
m:=c;
q:=p;
end;
end;
end;
a:=length (s);
while s[a]<>' ' do
begin
delete (s,a,1);
a:=a-1;
end;
write (s, q);
end.
P.S. Надеюсь на благодарность и лучший ответ.