输入一个字符串,求出里面出现最多的一个字符,并输出出现的次数
1个回答
展开全部
program ex;
var
st:string;
l,k,i,j,t:integer;
st1:array[1..100] of char;
a:array[1..100] of integer;
tt:char;
flag:boolean;
begin
readln(st);
l:=length(st);
k:=0;
for i:=1 to l do
begin
for j:=1 to k do
if st[i]=st1[j] then begin flag:=true;a[j]:=a[j]+1;end;
if flag=false then begin k:=k+1;st1[k]:=st[i];a[k]:=a[k]+1;end;
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if a[i]<a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
tt:=st1[i];
st1[i]:=st1[j];
st1[j]:=tt;
end;
writeln(st1[1],' ',a[1]);
end.
var
st:string;
l,k,i,j,t:integer;
st1:array[1..100] of char;
a:array[1..100] of integer;
tt:char;
flag:boolean;
begin
readln(st);
l:=length(st);
k:=0;
for i:=1 to l do
begin
for j:=1 to k do
if st[i]=st1[j] then begin flag:=true;a[j]:=a[j]+1;end;
if flag=false then begin k:=k+1;st1[k]:=st[i];a[k]:=a[k]+1;end;
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if a[i]<a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
tt:=st1[i];
st1[i]:=st1[j];
st1[j]:=tt;
end;
writeln(st1[1],' ',a[1]);
end.
追问
可以把每一个步骤解释一下吗?谢谢!
追答
思路:输入一个字符串,先用函数length求出该字符串的函数。
下一步,用一个数组,用for进行扫描,将扫描到的字符存入数组里面,相同的就不用存入数组了。在扫描的同时,统计它们的出现次数。
最后将次数进行排序,这样就OK了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询