gpt4 book ai didi

c++ - 需要帮助修复 Pascal 中的错误 201

转载 作者:行者123 更新时间:2023-11-30 03:39:48 25 4
gpt4 key购买 nike

我正在尝试将此 C++ 代码转换为 Pascal,但出现错误 201。有人可以帮我修复它吗?

C++代码:

int n; 
bool a[100];

void show()
{
for (int i=1; i<=n; i++)
if (a[i])
printf("%d ", i);
printf("\n");
}

void bt(int u)
{
if (u==n+1)
{
show();
return ;
}
a[u]=0;
bt(u+1);
a[u]=1;
bt(u+1);
}

main()
{
scanf("%d", &n);
bt(1);
}

帕斯卡代码:

type data = integer; var i,n:integer; a:array[0..100] of integer; b:array[0..100] of integer;

procedure show; var i:data; begin
for i:=1 to n do
begin
if (b[i]=0) then
writeln(a[i]);
end; end;

procedure bt(i:data); var u:data; begin

if (u=n+1) then
begin
show();
end
else
b[u]:=0;
bt(u+1);
b[u]:=1;
bt(u+1);

end;

begin
write('Nhap n ');
readln(n);
bt(1); end.

谢谢,对不起我的英语水平

最佳答案

我的 c++ 有点生疏,但对我来说这看起来不像是准确的翻译。尝试这样的事情:

type
data = integer;

var
// i,
n : integer;
a : array[0..100] of boolean; // integer;
// b : array[0..100] of integer;

procedure SetUp;
var
i : Integer;
begin
for i := 0 to 100 do
a[i] := True;
end;

procedure show;
var
i : data;
begin
for i := 1 to n do
begin
if a[i] then
write(i);
end;
writeln;
end;

procedure bt(i : data);
var
u : data;
begin
if ( u = n + 1) then
begin
show();
end;
/// else
// b[u] := False;
bt(u + 1);
a[u] := True;
bt(u+1);
end;

begin
SetUp;
write('Nhap n ');
readln(n);
bt(1);
readln;
end.

Pascal 具有原生 bool 类型,因此我更改了数组 a 的声明。我已经包含了一个例程 SetUp 来显式初始化它。我不确定你的数组 b 来自哪里。

顺便说一句,如果 SetUp 将 a 的元素的值设置为 false,您将获得的所有输出都是一系列空行。

关于c++ - 需要帮助修复 Pascal 中的错误 201,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38537669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com