두 번째로 큰 값을 표시하는 데 문제가 있습니다. 당신은 코드 나에게 유일한 가장 큰 값을 표시 볼 수 있듯이파스칼로 두 번째로 큰 값을 찾는 방법
다음은 코드
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를 최대치로 간주합니다. 그게 논리적입니까? 그렇다면 항상 동일합니다. 열쇠는/when/maximum에 원하는 값이 포함되어 있는지 확인하고 begin end 블록으로 if를 확장하는 것입니다. –
@MarcovandeVoort 네,이 경우 저는 항상 최대와 동일하다는 것을 압니다. 그래서 내가 도움이 필요해. – Marco