讨论 / 大牛们帮个忙
wwww 2008-08-25 02:16:00
点我顶贴 收藏 删除
为什么错了?

var i,j,t,x,n,p:longint;

a:array[1..200]of longint;

s:array[1..200]of ansistring;

k:ansistring;

begin

readln(n);

for i:=1 to n do readln(s[i]);

t:=0;j:=0;

while t<=n do

begin

inc(t);

inc(a[t]);

inc(j);

p:=t;

k:=copy(s[t],1,4);

if k=’jmp ’ then begin val(copy(s[t],5,length(s[t])-4),t,x);if t>n then begin t:=n-1;break;end;end;

if (k=’jmp ’)and(a[p]=2) then break;

end;

if t>n then write(j) else write(0);

end.

#1 Jollwish@2008-08-24 21:42:00
回复 删除
并不是只有jmp语句才死循环吧

ansistring也不需要

#2 wwww@2008-08-24 22:03:00
回复 删除
麻烦贴个程序
#3 Jollwish@2008-08-25 02:16:00
回复 删除
var n,i,k,l,sum,num,c:longint;

a:array[1..200]of string;

s1,s2:string;

f:array[1..200]of boolean;

begin

readln(n);

for i:=1 to n do readln(a[i]);

k:=1;

repeat

if f[k] then

begin

writeln(’0’);

exit;

end;

s1:=copy(a[k],1,4);

f[k]:=true;

if s1=’jmp ’ then

begin

l:=length(a[k]);

s2:=copy(a[k],5,l-4);

val(s2,num,c);

k:=num;

inc(sum);

end

else

begin

inc(k);

inc(sum);

end;

until k>n;

writeln(sum);

end.

查看更多回复
提交回复