我有問題顯示第二大值。如何找到Pascal的第二大值
這裏是代碼
program testeFeldZweitMax (input, output);
{ testet die Funktion FeldZweitMax }
const
FELDGROESSE = 10;
type
tIndex = 1..FELDGROESSE;
tFeld = array [tIndex] of integer;
var
Feld : tFeld;
i : integer;
function FeldZweitMax (var inFeld : tFeld) : integer;
var
Maximum: integer;
j : tIndex;
begin
Maximum := inFeld[1];
for j := 2 to FELDGROESSE do
if inFeld[j] > Maximum then
Maximum := inFeld[j];
FeldZweitMax := Maximum
end;
begin { Testprogramm }
writeln('Bitte geben Sie ', FELDGROESSE, ' Zahlen ein:');
for i := 1 to FELDGROESSE do
read (Feld [i]);
writeln('Die zweitgroesste Zahl ist ', FeldZweitMax (Feld), '.');
end. { testeFeldZweitMax }
正如你可以看到代碼顯示我的只有最大的價值。我需要一些幫助來顯示第二大價值。
var
Maximum, ZweitMax: integer;
j : tIndex;
begin
Maximum := inFeld[1];
ZweitMax := inFeld[2];
for j := 1 to FELDGROESSE do
begin
if inFeld[j] < Maximum then
inFeld[j] := Maximum;
Maximum := ZweitMax;
ZweitMax := inFeld[j];
FeldZweitMax := ZweitMax
end
end;
它不能正常工作。對我有些建議?
您總是將feldzweitmax等同於最大值。這合乎邏輯嗎?然後它總是一樣的。關鍵是找到about/when/Maximum包含您想要的值並將if擴展爲開始結束塊。 –
@MarcovandeVoort是的,我知道,在這種情況下,我總是等於最大值。這就是爲什麼我需要幫助。在您開始前* – Marco