
输入一串字符,以?结束,统计各字幕出现的次数……用pascal语言 用一维数组
输入一串字符,以"?"结束,通缉各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序出去,不出现的字母不输出)例:输入5b3a+4-hde...
输入一串字符,以"?"结束,通缉各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序出去,不出现的字母不输出)
例:输入5b3a+4-hdeh5dh? 回车
输出 h 3
d 2
a 1
b 1
e 1(pascal程序设计第二版第170页习题7.7)
4月22日前……谢谢…… 展开
例:输入5b3a+4-hdeh5dh? 回车
输出 h 3
d 2
a 1
b 1
e 1(pascal程序设计第二版第170页习题7.7)
4月22日前……谢谢…… 展开
展开全部
program cc;
var a:array['a'..'z']of longint; {存相应的字母数}
s:string;
t,max,min:longint;
c,m:char;
begin
readln(s);
for t:=1 to length(s) do
if (s[t]>='a')and(s[t]<='z') then
inc(a[s[t]]); {先统计各个字母的个数,由于LZ题目中只有小写字母,这里就只处理小写了,要处理大写字母就把数组改一下,上面限制条件改一下就可以了}
min:=maxint; {由于涉及字符,又是一位数组,就用最普通的排序了}
repeat
max:=0;
for c:='a' to 'z' do
if (max<a[c])and(min>=a[c]) then {筛选出来当前符合条件的最大值}
begin
max:=a[c];
m:=c; {记录}
end;
a[m]:=0;
if max<>0 then writeln(m,' ',max) {输出}
until max=0; {max=0表明全部输出了}
end.
var a:array['a'..'z']of longint; {存相应的字母数}
s:string;
t,max,min:longint;
c,m:char;
begin
readln(s);
for t:=1 to length(s) do
if (s[t]>='a')and(s[t]<='z') then
inc(a[s[t]]); {先统计各个字母的个数,由于LZ题目中只有小写字母,这里就只处理小写了,要处理大写字母就把数组改一下,上面限制条件改一下就可以了}
min:=maxint; {由于涉及字符,又是一位数组,就用最普通的排序了}
repeat
max:=0;
for c:='a' to 'z' do
if (max<a[c])and(min>=a[c]) then {筛选出来当前符合条件的最大值}
begin
max:=a[c];
m:=c; {记录}
end;
a[m]:=0;
if max<>0 then writeln(m,' ',max) {输出}
until max=0; {max=0表明全部输出了}
end.
展开全部
var
times:array['a'..'z']of longint;
ch:array[1..26]of char;
w:char;
t:longint;
i,j:integer;
begin
for i:=1 to 26 do ch[i]:=chr(ord('a')+i-1);
fillchar(times,sizeof(times),0);
w:=#0;
while w<>'?' do
begin
read(w);
if (w<='a') or (w>='z') then continue;
times[w]:=times[w]+1;
end;
for i:=1 to 25 do
for j:=i+1 to 26 do
if (times[ord('a')+i-1]<times[ord('a')+j-1]) or
((times[ord('a')+i-1]=times[ord('a')+j-1])and(ch[i]>ch[j])) then
begin
t:=times[ord('a')+i-1];
times[ord('a')+i-1]:=times[ord('a')+j-1];
times[ord('a')+j-1]:=t;
w:=ch[i];
ch[i]:=ch[j];
ch[j]:=w;
end;
j:=ord('z');
while times[j]=0 do j:=j-1;
for i:=ord('a') to j do writeln(ch[i-ord('a')+1],' ',times[i]);
end.
times:array['a'..'z']of longint;
ch:array[1..26]of char;
w:char;
t:longint;
i,j:integer;
begin
for i:=1 to 26 do ch[i]:=chr(ord('a')+i-1);
fillchar(times,sizeof(times),0);
w:=#0;
while w<>'?' do
begin
read(w);
if (w<='a') or (w>='z') then continue;
times[w]:=times[w]+1;
end;
for i:=1 to 25 do
for j:=i+1 to 26 do
if (times[ord('a')+i-1]<times[ord('a')+j-1]) or
((times[ord('a')+i-1]=times[ord('a')+j-1])and(ch[i]>ch[j])) then
begin
t:=times[ord('a')+i-1];
times[ord('a')+i-1]:=times[ord('a')+j-1];
times[ord('a')+j-1]:=t;
w:=ch[i];
ch[i]:=ch[j];
ch[j]:=w;
end;
j:=ord('z');
while times[j]=0 do j:=j-1;
for i:=ord('a') to j do writeln(ch[i-ord('a')+1],' ',times[i]);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
program qc;
var
ch:char;
a:array[0..100000] of longint;
beign
while ch<>'?' do
begin
read(ch);
inc(a[ord(ch)-97]);
end;
for i:=0 to 23 do
if a[i]>0 then
begin
writeln(chr(i+97),' ',a[i]);
end;
end.
var
ch:char;
a:array[0..100000] of longint;
beign
while ch<>'?' do
begin
read(ch);
inc(a[ord(ch)-97]);
end;
for i:=0 to 23 do
if a[i]>0 then
begin
writeln(chr(i+97),' ',a[i]);
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
pascal exll;
var a,b:longint;
begin
a:=0;
for b:=1 to 10
writeln(a);
readln
end.
var a,b:longint;
begin
a:=0;
for b:=1 to 10
writeln(a);
readln
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询