C/C++求转PASCAL代码
voidfind(intx,inty){inthh,x1,y1,i;hh=-1;len=1;star[0][0]=x;star[0][1]=y;map[x][y]=2;d...
void find
(int x,int y)
{ int hh,x1,y1,i; hh=-1; len=1;
star[0][0]=x; star[0][1]=y; map[x][y]=2;
do{
hh++;
x=star[hh][0]; y=star[hh][1];
for (i=0;i<8;i++){ x1=x+dir[i][0];
y1=y+dir[i][1];
if (x1<0||y1<0||x1>=h||y1>=w) continue;
if (map[x1][y1]!=1) continue;
star[len][0]=x1; star[len][1]=y1;
len++; map[x1][y1]=2; }
}
while (hh<len-1); } 展开
(int x,int y)
{ int hh,x1,y1,i; hh=-1; len=1;
star[0][0]=x; star[0][1]=y; map[x][y]=2;
do{
hh++;
x=star[hh][0]; y=star[hh][1];
for (i=0;i<8;i++){ x1=x+dir[i][0];
y1=y+dir[i][1];
if (x1<0||y1<0||x1>=h||y1>=w) continue;
if (map[x1][y1]!=1) continue;
star[len][0]=x1; star[len][1]=y1;
len++; map[x1][y1]=2; }
}
while (hh<len-1); } 展开
展开全部
procedure find(x,y : integer); (这里x,y的定义加不加var我也不是很确定)
begin
var hh,x1,y1,i,hh,len : integer;
hh := -1; len := 1;
star[0,0] := x; star[0,1] := y; map[x,y] := 2;
repeat (这里我不是很确定,你最好查一下c++中 while的用法)
inc(hh);
x := star[hh,0]; y := star[hh,1];
for i := 0 to 7 do begin
x1 := x+dir[i,0];
y1 := y+dir[i,1];
if (x1<0)or(y1<0)or(x1>=h)or(y1>=w) then continue;
if (map[x1,y1]<>1) then continue;
star[len,0] := x1; star[len,1] := y1;
inc(len); map[x1,y1] := 2;
end;
until (hh>=len-1);
end;
以上的渣翻译可能有很多出入,不过相信你可以调试出来= =
嘛,其实最好的办法是自己学一下C++,网上参考程序太多是C了
推荐看一下matrix67大牛的c语言俗称手册,是从pascal到c的速成,一共7篇文章,一天一篇一个礼拜就搞定了~http://www.matrix67.com/blog/archives/215
begin
var hh,x1,y1,i,hh,len : integer;
hh := -1; len := 1;
star[0,0] := x; star[0,1] := y; map[x,y] := 2;
repeat (这里我不是很确定,你最好查一下c++中 while的用法)
inc(hh);
x := star[hh,0]; y := star[hh,1];
for i := 0 to 7 do begin
x1 := x+dir[i,0];
y1 := y+dir[i,1];
if (x1<0)or(y1<0)or(x1>=h)or(y1>=w) then continue;
if (map[x1,y1]<>1) then continue;
star[len,0] := x1; star[len,1] := y1;
inc(len); map[x1,y1] := 2;
end;
until (hh>=len-1);
end;
以上的渣翻译可能有很多出入,不过相信你可以调试出来= =
嘛,其实最好的办法是自己学一下C++,网上参考程序太多是C了
推荐看一下matrix67大牛的c语言俗称手册,是从pascal到c的速成,一共7篇文章,一天一篇一个礼拜就搞定了~http://www.matrix67.com/blog/archives/215
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询