-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