Pascal 帕斯卡练习没有解决
其目的是在整数列表中找到最大值Pascal 帕斯卡练习没有解决,pascal,Pascal,其目的是在整数列表中找到最大值 program findMaximum(input,output); var number: integer; Maximum: integer; begin writeln('Insert any number except of 0. 0 finishes your input.'); if eof then writeln('No input!') else be
program findMaximum(input,output);
var
number: integer; Maximum: integer;
begin
writeln('Insert any number except of 0. 0 finishes your input.');
if eof then
writeln('No input!')
else
begin
read(number);
Maximum:= number;
while not eof do
begin
if number>Maximum then
read(number);
Maximum := number
end;
if number<0 then
read(number);
Maximum:= 0;
writeln ('The highest number is 0.')
end.
程序查找最大值(输入、输出);
变量
数字:整数;最大值:整数;
开始
writeln('插入除0之外的任何数字。0完成输入');
如果是eof那么
writeln('无输入!')
其他的
开始
读取(数字);
最大值:=个数;
而不是eof做什么
开始
如果数量>最大值,则
读取(数字);
最大值:=个数
结束;
如果编号一般建议:
你肯定应该重新阅读复合语句的语法,如果..那么..否则。您的代码可能和if语句在数字上的比较不符。
然后,请拿起纸和笔,手动运行代码(你是计算机执行程序的一部分),思考一个语句的效果,写下所有涉及的变量值,然后继续下一个语句,直到最后一个语句。这将使您更好地了解代码的功能。为了分析代码的特定错误行为,您可能需要学习使用调试器
特定于您的代码:
对于给定代码,输入的任何负数都会将最大值重置为0。这很可能是由于缺少Maximum的初始化,因为您似乎试图确保Maximum不会作为负值返回
此外,您缺少所述的终止条件(输入0将结束程序)
修复这些方面后,代码将如下所示:
program findMaximum(input,output);
var
number: integer; Maximum: integer;
readOn: boolean;
begin
Maximum:=0;
readOn := true;
writeln('Insert any number except of 0. 0 finishes your input.');
if eof then
writeln('No input!')
else
begin
read(number);
Maximum:= number;
while readOn and not eof do
begin
if number = 0 then
readOn := false
else
begin
if number>Maximum then
Maximum := number;
read(number);
end;
end;
writeln ('The highest number is ',Maximum,'.');
end
end.
但是,当输入过程中发生EOF时,您将无法正确处理该情况。(不仅仅是读取值时的第一个事件。)
考虑到这一点,您最终可能会使用以下内容:
program findMaximum(input,output);
var
number: integer; Maximum: integer;
readOn: boolean;
valuesSeen: boolean;
begin
Maximum:=0;
readOn := true;
valuesSeen := false;
writeln('Insert any number except of 0. 0 finishes your input.');
read(number);
while readOn and not eof do
begin
if not eof then
begin
if number = 0 then
readOn := false
else
begin
valuesSeen := true;
if number>Maximum then
Maximum := number;
read(number);
end
end
end;
if valuesSeen then
writeln ('The highest number is ',Maximum,'.')
else
writeln('No input!')
end
end.
请学习在这里发布时正确设置代码格式。粘贴它,高亮显示(选择)所有内容,然后单击工具栏上的{}
按钮或工具栏上的Ctrl+K。如果您需要有关内容格式的帮助,请单击文本区域右上角键入问题的小?
。此外,您还没有解释所发布代码的问题,也没有询问有关该代码的特定问题。有人能帮忙吗?不是一个具体的(甚至没有意义的)问题。你应该解释你的问题所显示的代码有什么问题(除了暗示它不起作用(如预期的)。