主题:有一个难题, 请帮帮忙!!!
miaaa
[专家分:0] 发布于 2008-02-08 01:35:00
例如 array[1] 存的是'i am a girl.' 这串string
array[2] 存的是'she is a girl.' 这串string
还有更多的array[i]....
想请问一下, 怎样去计算'a'array中出现过的次数?
我就是怎麽想也想不出来
请高手帮帮忙吧~!
谢谢阿
回复列表 (共4个回复)
沙发
Sevenl [专家分:0] 发布于 2008-02-08 14:12:00
你可以这样按这样的思路思考(其他的你自己补充):
-----------------------------------------------------------
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.
-----------------------------------------------------
板凳
miaaa [专家分:0] 发布于 2008-02-09 01:17:00
我初初也是这样写的...
原来我把" 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 楼
miaaa [专家分:0] 发布于 2008-02-09 13:31:00
請問錯左那裡啦? 謝謝
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 楼
gddmyr [专家分:30] 发布于 2008-02-10 00:17:00
楼上的程序好像忒复杂了点,看不懂,在下有一道漏程
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.
我来回复