【问题标题】:PASCAL procedure won't read value from an external variablePASCAL 过程不会从外部变量中读取值
【发布时间】:2020-11-26 10:53:14
【问题描述】:

给定abc,计算: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 而不是r1r2r3 的总和,与输入 (a,b,c) 无关。我该如何解决这个问题?

【问题讨论】:

    标签: while-loop procedure pascal


    【解决方案1】:

    您对 while 循环比较有误,pwr &lt;= 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      相关资源
      最近更新 更多