回 帖 发 新 帖 刷新版面

主题:请问,这两题怎么做?

1,读入一个英文句子,单词间用空格或逗号隔开,统计其中的单词个数,并输出各个字母出现的频率。(句子末尾不一定用“结束')

2,有一组数,其排列形式如下,11,19.9.12.5.20.1.18.4.16.6.10.15.2.17.3.14.7.13.8.且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置.

谢谢@ @!
     

回复列表 (共19个回复)

11 楼

我改一下
const
  a=array[0..20]of(8,11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8);
var 
  i,te,max,maxi:intger;
begin
  for i:=1 to 20 do
    begin
      te:=a[i]+a[(i+1) mod 20]+a[(i+2) mod 20]+a[(i+3) mod 20];
      if te>max then 
         begin
            maxi:=i;
            max:=te;
         end;
    end;
  writeln(max);
  writen(maxi);
end.

12 楼

const
  a:array[0..20]of integer=(8,11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8);
var
  i,te,max,maxi:integer;
begin
  for i:=1 to 20 do
    begin
      te:=a[i]+a[(i+1) mod 20]+a[(i+2) mod 20]+a[(i+3) mod 20];
      if te>max then
         begin
            maxi:=i;
            max:=te;
         end;
    end;
  writeln(max);
  writeln(maxi);
end.

13 楼

我终于改过来了,晕死了。不测不知道,一测吓一跳,错误挺多的,经测第2题的正确题解在12楼。真对不起,浪费了这么多宝贵的网络资源

14 楼

var
 str:string;

 rate:array['A'..'z']of real;
 word,len,i,letter:integer;
 ch:char;
begin
 readln(str);
 len:=length(str);
 fillchar(rate,sizeof(rate),0);
 word:=0;letter:=0;
 for i:=1 to len do
  begin
   ch:=str[i];
   if ch in['a'..'z','A'..'Z']
     then begin
            rate[ch]:=rate[ch]+1;
            letter:=letter+1
          end
     else if (ch=' ')or(ch=',') then word:=word+1
  end;
  word:=word+1;
  for ch:='A' to 'z' do
    begin
      rate[ch]:=rate[ch]/word;
      writeln('the rate of','''',ch,'''','is',rate[ch]:0:3)
    end;

end.

15 楼

var
 str:string;

 rate:array['A'..'z']of real;
 word,len,i,letter:integer;
 ch:char;
begin
 readln(str);
 len:=length(str);
 fillchar(rate,sizeof(rate),0);
 word:=0;letter:=0;
 for i:=1 to len do
  begin
   ch:=str[i];
   if ch in['a'..'z','A'..'Z']
     then begin
            rate[ch]:=rate[ch]+1;
            letter:=letter+1
          end
     else if (ch=' ')or(ch=',') then word:=word+1
  end;
  word:=word+1;
  for ch:='A' to 'z' do
    begin
      rate[ch]:=rate[ch]/letter;
      writeln('the rate of','''',ch,'''','is',rate[ch]:0:3)
    end;

end.

16 楼

12 15楼通过了测试,是题解。以后还是细心点。。哎。。。。。。。

17 楼

谢谢,我复制打印下来了,今晚要学英语没时间了,明天照你的试试!
谢谢!

18 楼

[em1]

19 楼

e

我来回复

您尚未登录,请登录后再回复。点此登录或注册