Дан массив символьных строк. Найдите строку, в которой наибольшее количество знаков арифметических операций: + - * / и вывести на экран все строки , кроме нее. Если таких строк несколько,то не выводить их все.
Const n=4; var s: array[1..n] of string; i,j,k,max: integer; mn: set of byte; begin for i:=1 to n do readln(s[i]); max:=0; mn:=[]; for i:=1 to n do begin k:=0; for j:=1 to length(s[i]) do if s[i][j] in ['+','-','*','/'] then k:=k+1; if k>max then begin max:=k; mn:=[i]; end else if k=max then mn:=mn+[i]; end; writeln('max = ',max); for i:=1 to n do if not(i in mn) then writeln(s[i]); end.
Answers & Comments
Verified answer
Const n=4;var s: array[1..n] of string;
i,j,k,max: integer;
mn: set of byte;
begin
for i:=1 to n do readln(s[i]);
max:=0; mn:=[];
for i:=1 to n do
begin
k:=0;
for j:=1 to length(s[i]) do
if s[i][j] in ['+','-','*','/'] then k:=k+1;
if k>max then begin max:=k; mn:=[i]; end
else if k=max then mn:=mn+[i];
end;
writeln('max = ',max);
for i:=1 to n do
if not(i in mn) then writeln(s[i]);
end.
Пример:
2*3+4 = 10
1024/32 = 32
5*3-2=123
8+5+7=90
max = 2
1024/32 = 32