Помогите реализовать задачку Найти максимальную цифру в строке.
Код программы моей выкладываю:
program ex10;
var i,k,n,max:integer;
s:string;
begin
writeln ('Введите строку');
readln(s);
val(s[1],n,k);
max:=n;
for i:=2 to length(s) do
begin
val(s[i],n,k);
if n>max then
max:=n;
end;
writeln('Макс число''',max);
readln;
end.
program ex10;
var ch:char;
s:string;
i:Byte;
begin
writeln ('Введите строку');
readln(s);
Ch:=#0;
For i:=1 to Length(St) do
If St[i]>Ch then Ch:=St[i];
writeln('Макс число '+Ch);
readln;
end.
APAL, а то что коды букв больше кодов цифр - не смущает?
Попробуй прогнать свой пример на строке "123482a"
Тогда уже вот так:
If (s[i] in ['0'..'9']) and (S[i]>Ch) then Ch:=S[i];
Я это предвидел, но не стал вводить проверку:
Во первых - в условии не уточняется что вводится, но упоминается цифра - результат (программа) выше приведен.
Во вторых - если все же строка может содержать и другие символы - это хорошая практика для автора, пусть внесет изменения.