PASCAL 过程不会从外部变量读取值
PASCAL procedure won't read value from an external variable
给定 a
、b
和 c
,计算:2^a + 2^b + 2^c
。
program power;
var a,b,c, r1,r2,r3 :integer;
procedure power2(pwr :integer; var result :integer);
var i :integer;
begin
i := 1;
result := 1;
while pwr <= i do
begin
result := result * 2;
i := i + 1;
end;
end;
begin {main}
write('a: ');
readln(a);
write('b: ');
readln(b);
write('c: ');
readln(c);
power2(a, r1);
power2(b, r2);
power2(c, r3);
writeln('power: ', r1 + r2 + r3);
end.
为什么程序无法执行 while
循环?
程序打印 3
而不是 r1
、r2
、r3
的总和,与输入 (a,b,c) 无关。我该如何解决这个问题?
您关于 while 循环比较的说法不正确,pwr <= i
。
应该是反过来的。
procedure power2(pwr :integer; var result :integer);
var i :integer;
begin
i := 1;
result := 1;
while i <= pwr do
begin
result := result * 2;
i := i + 1;
end;
end;
给定 a
、b
和 c
,计算:2^a + 2^b + 2^c
。
program power;
var a,b,c, r1,r2,r3 :integer;
procedure power2(pwr :integer; var result :integer);
var i :integer;
begin
i := 1;
result := 1;
while pwr <= i do
begin
result := result * 2;
i := i + 1;
end;
end;
begin {main}
write('a: ');
readln(a);
write('b: ');
readln(b);
write('c: ');
readln(c);
power2(a, r1);
power2(b, r2);
power2(c, r3);
writeln('power: ', r1 + r2 + r3);
end.
为什么程序无法执行 while
循环?
程序打印 3
而不是 r1
、r2
、r3
的总和,与输入 (a,b,c) 无关。我该如何解决这个问题?
您关于 while 循环比较的说法不正确,pwr <= i
。
应该是反过来的。
procedure power2(pwr :integer; var result :integer);
var i :integer;
begin
i := 1;
result := 1;
while i <= pwr do
begin
result := result * 2;
i := i + 1;
end;
end;