конкретно в каких стейтментах была ошибка , я не смог разобраться , но фактически у тебя
1.был не правильный вывод (m[1])
2.неправильная итерация по циклу с переменной 'с'
крч легче было просто переделать
var
c, n, i, j: integer;
m: array[1..1000] of integer;
begin
Readln(n);
for i := 1 to n do
begin
m[i] := i;
Write(m[i], ' ');
end;
writeln;
while n >= 1 do
begin
if c+2 < n then c := c + 3 else c := n - c + 3;
for i:=c to n do m[c]:=m[c+1];
n := n - 1;
end;
writeln(m[c]);
end.
Если как на скрине, то E) 41325
В коде который написан текстом есть ошибки.
Объяснение:
Если исправить ошибку в условии заменой cout на std::cout, то:
Индексы массива начинаются с 0. Т.е.
mas[0] == 1;
mas[1] == 3;
mas[2] == 2;
mas[3] == 5;
mas[4] == 4;
На скрине расписал назначение каждой конкретной строчки.
Пройдем по итерациям первого цикла. Для краткости буду обозначать смену значений swap()
i=3; swap(mas[3], mas[4]) mas == {1,3,2,4,5}
i=2; swap(mas[2], mas[3]) mas == {1,3,4,2,5}
i=1; swap(mas[1], mas[2]) mas == {1,4,3,2,5}
i=0; swap(mas[0], mas[0]) mas == {4,1,3,2,5}
Второй цикл просто выводит массив поэтому на экран будет выедено
41325
============
Не забывайте нажать " ", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"
Успехов в учебе