回 帖 发 新 帖 刷新版面

主题:有一个难题, 请帮帮忙!!!

例如 array[1] 存的是'i am a girl.' 这串string
     array[2] 存的是'she is a girl.' 这串string
还有更多的array[i]....

想请问一下, 怎样去计算'a'array中出现过的次数?
我就是怎麽想也想不出来
请高手帮帮忙吧~!
谢谢阿

回复列表 (共4个回复)

沙发

你可以这样按这样的思路思考(其他的你自己补充):
-----------------------------------------------------------
var
  i,j,k,s:integer;
  st:string;
begin
  s:=0;
  for j:=1 to i do
    begin
      st:=array[j];
      for k:=1 to lenght(st) do
        if st[k]='a' then s:=s+1;
    end;
  writeln('"a"在array中出现过的次数为:',s);
end.
-----------------------------------------------------

板凳

我初初也是这样写的...
原来我把" st:=array[j];" 
这句左右搞错了=.='
先谢谢你呀!!!

再有一个问题麻烦你阿~!!
也是有 array[1] 存的是'i am a Girl.' 这串string
       array[2] 存的是'she is a girl.' 这串string
还有更多的array[i]....
这次是要计算'girl'array中出现过的次数

我先upcase 'girl' 和 所以array中的string
再检查'girl'的前後是否' ' 或者'.'
但再下一步又却步了...应该怎样写??

3 楼

請問錯左那裡啦? 謝謝

  given:='girl';
  lengthgiven:=length(given);
  for M:=1 to lengthgiven            
    do upgiven[M]:=upcase(given[m]);

  for N:= 1 to i do                  
    begin
      st:=array[N];
      for P:=1 to length(st) do
        begin
          st[P]:=upcase(st[P]);
        for j:=1 to length(st) do
          begin
            if (st[j]=' ') and (st[j+(lengthgiven)+1] in [' ',',','.','!','?'])
              then
                begin
              
                  for k:=1 to lengthgiven do
                  begin
                  fitornot:=0;
                   if st[j+k]=upgiven[k]
                     then fitornot:=fitornot+1;
                
                  if fitornot=lengthgiven
                  then appear:=appear+1;
                  end;
                end;
           end;
        end;
  end;  
  writeln(appear);    
end;

4 楼

楼上的程序好像忒复杂了点,看不懂,在下有一道漏程
var
   st:string;
   i,j,o:integer;
   t:boolean;
begin
     o:=0;
     while not eof do
     begin
          readln(st);
          t:=true;
          for i:=1 to length(St) do st[i]:=upcase(st[i]);
          while t do
          begin
               if (pos('GIRL',st)>0) and
                  (st[pos('GIRL',st)-1] in [' ',',']) and
                       (st[pos('GIRL',st)+4] in [' ',',','.']) then
                            begin inc(o); delete(st,pos('GIRL',st)-1,6) end
                  else t:=false;
          end;
     end;
     writeln(o);
end.

我来回复

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