나는 수업을 위해 파스칼에서 숙제를하고 있는데, 나는 걸림돌을 때렸다. 기본적으로 작동하지만 숙제 제출 사이트에서 저에게 완전한 신용을 부여하지 않았습니다. 나는 교수님에게 이메일을 보내고 그는 {$ r +} 지시어로 나를 감추었습니다. 이를 포함 시키면 런타임 오류 201이 발생합니다. 문제가 범위 검사와 관련이 있다는 것을 알고 있지만 어떤 변경으로 문제가 해결되는지 알 수 없습니다. 어떤 도움이라도 대단히 감사합니다.배열 범위 오류 (파스칼)
{$mode Delphi}
{$r+}
program InversePerm;
var
N: integer; // Size of set of numbers
i: integer; // counter
x: integer; // array-slot counter
perm: array of integer; // THE array
begin
read(N);
setlength(perm, N); // sets array size to user input
for i := 1 to N do
begin
read(x);
perm[x] := i;
end;
for i := 1 to N do
write(perm[i], ' ');
end.
파스칼 기반 배열 인덱스 0이 아닙니까? – Hintham
@Hintham : 꼭 그런 것은 아니지만이 경우에는 그렇습니다. Op는'for i : = Low (Perm) to High (Perm) ... '와 같이 더 잘할 것입니다. – MartynA
루프 조건을 귀하의 제안으로 전환했습니다. 감사합니다. 내 변수 중 하나가 너무 작을 수 있습니까? {$ mode Delphi} 지시문을 포함해서 그와 같은 것을 처리 할 것이라고 생각했습니다. ... – Reccho