Другие языки программирования и технологии

pascal, помогите с ошибкой

program wdf;
var
A:array [0..1000000] of integer;
B:array [0..1000000] of integer;
C:array [0..1000000] of integer;
D:array [0..1000000] of integer;
E:array [0..1000000] of integer;
F:array [0..1000000] of integer;
G:array [0..1000000] of integer;
H:array [0..1000000] of integer;
J:array [0..1000000] of integer;
K:array [0..1000000] of integer;
L:array [0..1000000] of integer;
x,n,i:integer;
begin
writeln('Введите колличество элементов');
read(n);
for i:=1 to n do
begin
readln(a[i]);
x:= A[i] mod 10;
case x of;
0:B[i]:=A[i];
1:C[i]:=A[i];
2:D[i]:=A[i];
3:E[i]:=A[i];
4:F[i]:=A[i];
5:G[i]:=A[i];
6:H[i]:=A[i];
7:J[i]:=A[i];
8:K[i]:=A[i];
9:L[i]:=A[i];
end;
for (место с ошибкой) i:=1 to n do
writeln(B[i]);
for i:=1 to n do
writeln(C[i]);
for i:=1 to n do
writeln(D[i]);
for i:=1 to n do
writeln(E[i]);
for i:=1 to n do
writeln(F[i]);
for i:=1 to n do
writeln(G[i]);
for i:=1 to n do
writeln(H[i]);
for i:=1 to n do
writeln(J[i]);
for i:=1 to n do
writeln(K[i]);
for i:=1 to n do
writeln(L[i]);
end;
end.

ошибка: нельзя изменять значение переменной цикла внутри этого цикла
что вообще должно получиться: целочисленный массив упорядочить по возрастанию последней цифры числа. При совпадении последних цифр элементы располагать в произвольном порядке
Найди алгоритм сортировки любой
и там где идет сравнение элементов сравнивай не элементы, а только их посл. цифру:
(A[i] mod 10) > (A[x] mod 10) then ...

upd: https://ideone.com/sE5e3Z
ВТ
Владимир Трошин
13 080
Лучший ответ
Ни черта себе массивы. Ты действительно считаешь, что кто-то введет с клавиатуры миллион чисел?
И познакомься с двумерными массивами. Десятикратные повторения одного и того же ужасны.
А синтаксическая ошибка - у тебя второй цикл получился вложенным, но с той же переменной i.
Ahror Goibnazarov
Ahror Goibnazarov
93 250
Не ясно, что вы конкретно хотите…
Но, могу предложить такое решение (синтаксис запроса о вводе количества сохранён ;–)
Краб всё ответил. Красавчик. Сорь. Только сейчас увидел.

Попробую чуть объяснить другими словами:
У Вас цикл по i внешний и цикл по i внутренний. Во многих версиях Pascal запрещено изменение параметров цикла внутри самого цикла. (но не во всех =)

Исправить - надо знать что Вы вообще хотели. Есть подозрение, что это можно сделать проще.

От себя:
----
Когда видишь что-то вроде
A:array [0..1000000] of integer;
B:array [0..1000000] of integer;
C:array [0..1000000] of integer;
D:array [0..1000000] of integer;
E:array [0..1000000] of integer;
F:array [0..1000000] of integer;
G:array [0..1000000] of integer;
H:array [0..1000000] of integer;
J:array [0..1000000] of integer;
K:array [0..1000000] of integer;
L:array [0..1000000] of integer;

Сразу понимаешь - что то тут не то...

Прикиньте сколько у Вас эти массивы сходу схавают памяти. Особенно при x64. Да я в курсе логики - "память дешевая - фиг-ли не схавать". А теперь представьте в системе хотя-бы 3 похожих приложения....

Задача вообще какая?
слишком много i
KK
Kaisar_97 Kaisar
15 185
Эдуард Кобяков тогда чем это заменить?