Задача 6 урок 16 Варианты решений и вопрос
Primary tabs
Пользователь вводит строку произвольных символов,
выделите из неё массив первых 8 строковых литералов,
которые являются числами.
И выведите эти числа на экран.
Вариант из разбора:
Вопрос: сделал точно по шаблону из разбора - не работает. Выводит в консоль только последнее число. Почему?
var s: string; a: array [1..8] of string; i,j: integer; f: boolean; begin writeln('vvedite proizvolnuy stroku:'); //readln(s); s:= 'rew2i@#$$#435tr353453t4er4df'; f := false; j:=0; for i := 1 to length(s) do begin if (s[i] >= '0') and (s[i] <= '9') then begin if not f then j:=j+1; f:= true; a[j]:= a[j]+ s[i]; end else begin if (f) then begin f:=false; end; end; end; for i:= 1 to j do; writeln(a[i]); end.
Вариант без флага boolean:
var a: array [1..8] of string; s: string; i,j: integer; begin writeln('vvedite stroku s'); readln(s); j:=1; a[j]:=''; for i:=1 to length(s) do begin if (s[i]>='0') and (s[i]<='9') then a[j]:=a[j]+s[i] else if (a[j]<>'') then begin writeln(a[j]); if (j=8) then break; j:=j+1; end; end; readln(); end.
- Log in to post comments
- 443 reads
vedro-compota
Wed, 10/06/2021 - 21:01
Permalink
for i:= 1 to j do;
- точка с запятой
_____________
матфак вгу и остальная классика =)