-4
我要编写一个程序,要求用户输入“N”号,然后比较号码找到我使用二路最大数量,同时:读n个和比较帕斯卡
while i>n do read(number); i:=i+1;
是真的?如何保存号码并进行比较? 用于离如果用户有4号节省他们这样的:
一个:=数字1; b:= number2; ...
我要编写一个程序,要求用户输入“N”号,然后比较号码找到我使用二路最大数量,同时:读n个和比较帕斯卡
while i>n do read(number); i:=i+1;
是真的?如何保存号码并进行比较? 用于离如果用户有4号节省他们这样的:
一个:=数字1; b:= number2; ...
从集合中找出第二大数字的算法(假设这就是你之后的事情)相对简单。
get number into ultimate, on end-of-file exit
get number into penult, on end-of-file exit
if penult is greater than ultimate:
swap ultimate and penult
while true:
get number into num, on end-of-file return penult
if num is greater than ultimate:
set penult to ultimate
set ultimate to num
else:
if num is greater than penult:
set penult to num
换句话说,保持前两位数字[ultimate, penult]
的“清单”和未来的每个号插槽成列表,如果它原来是属于那里。
一旦用完了数字,该列表的第二项就是整个集合中的第二高数字。
在你不想重复占用两个插槽(如1,2,1
给你1
为第二高,你真的想2
)截止机会,你可以扔掉那些重复的,如果他们匹配:
get number into ultimate, on end-of-file exit
set penult to ultimate
while penult is equal to ultimate:
get number into penult, on end-of-file exit
if penult is greater than ultimate:
swap ultimate and penult
while true:
get number into num, on end-of-file return penult
if num is greater than ultimate:
set penult to ultimate
set ultimate to num
else:
if num is greater than penult and num is not equal to ultimate:
set penult to testnum
重写在帕斯卡尔,我会离开你的练习,因为它可能是课堂作业。
你的问题是难以理解的,请转述 – DadyFuji
另外,你必须考虑你的算法。如果我告诉你一堆数字并要求你告诉我最小的数字,你不需要全部记住它们,你只需要记录最小的数字。 – Davidmh
你有没有任何课程,阅读任何书籍,或者完成了Pascal的任何教程? – lurker