使用Pascal

时间:2017-10-17 18:55:41

标签: pascal

以下代码旨在查找输入数字范围内的最大数字。输入0后输入结束(确定最大值时不考虑0)。它似乎适用于正数,但对于一系列负数,它总是说最大值为0.任何人都可以告诉我错误在哪里?

program MaximumEndZero (input, output);
var
    Max,
    Value : integer;

begin
    writeln('Enter numbers');
    readln(Value);
    if (Value = 0) then
        writeln('No input')
    else
    begin
        Max := Value;
        while Value <> 0 do
        begin
            readln(Value);
            if Value > Max then
                Max := Value
        end;
        writeln('Max is: ', Max)
    end;
end.

谢谢vm

1 个答案:

答案 0 :(得分:0)

您自己创建了此问题,方法是使用Value的值来表示程序结束,然后在代码中没有考虑这个特殊含义(Value = 0)价值是最大值。

只需将代码更改为

即可
      if (Value <> 0) and (Value > Max) then
          Max := Value

(Value <> 0) and有效地说“忽略值,如果它恰好为零......”