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); }
展开
 我来答
百度网友83efe766d
2012-10-17 · TA获得超过107个赞
知道答主
回答量:80
采纳率:0%
帮助的人:63万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式