Задача 9 урок 16
Primary tabs
Задача 9 урок 16
Пользователь вводит исходную строку s.
Ваша программа должна вернуть другую строку, в которой все смежные (соседние) повторяющиеся символы должны быть "удалены" (т.е. повторов в новой строке быть не должно)
var s: string;
i, t, n: integer;
begin
writeln('Vvedite stroku');
readln(s);
n:=length(s);
while (n>0) do
begin
for i:=1 to length(s) do
begin
if s[i]=s[i+1] then //если соседние символы равны
begin
n:=n-1; //по n выход из while
for t:=(i+1) to length(s) do
s[t]:=s[t+1]; //переформируем остаток строки после совпадения
end;
end;
end;
writeln(s);
readln();
end.- Log in to post comments
- 1462 reads
vedro-compota
Tue, 09/14/2021 - 22:30
Permalink
1)
1)
-- не должно быть выхода за пределы массива
_____________
матфак вгу и остальная классика =)
boris68
Thu, 09/16/2021 - 21:57
Permalink
var s, s2: string;
var s, s2: string; i: integer; begin writeln('Vvedite stroku'); readln(s); t:=1; for i:=1 to length(s) do begin if i=1 then s2:=s2+s[i] else if s[i]<>s[i-1] then begin s2:=s2+s[i]; end; end; writeln(s2); readln(); end.vedro-compota
Sun, 09/19/2021 - 12:21
Permalink
лучше просто перебирать до
лучше просто перебирать до значения length(s) - 1
_____________
матфак вгу и остальная классика =)