Array17. Дан массив $$A$$ размера $$N$$. Вывести его элементы в следующем порядке: $$A_1, A_2, A_N, A_{N-1}, A_3, A_4, A_{N-2}, A_{N-3}, …$$ .
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
program Array17; var a:array[1..10] of integer; N,i:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; i:=1; While (i<=(N div 2)+1) do begin writeln(i,' : ',a[i]); if i<=N div 2 then writeln(i+1,' : ',a[i+1]); if N-i>(N div 2) then writeln(N-i+1,' : ',a[N-i+1]); if N-i-1>(N div 2) then writeln(N-i,' : ',a[N-i]); inc(i,2); end; end. |
Решение от olegst1975:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var n,i:integer; a:array [1..10]of real; begin read(n); for i:=1 to n do read(a[i]); for i:=1 to n div 4 do write(a[2*i-1],a[2*i],a[n+2-2*i],a[n+1-2*i]);//разбиваем на четверки и выводим их согласно задачи case (n mod 4) of//если N не кратно 4 1:write(a[2*(n div 4)+1]); 2:write(a[2*(n div 4)+1],a[2*(n div 4)+2]); 3:write(a[2*(n div 4)+1],a[2*(n div 4)+2],a[2*(n div 4)+3]); end; end. |
Другие задачи из раздела Array можно посмотреть здесь.
Не работает. Особенность — N не всегда кратно 4.
не кратно 4 это то ещё пережить можно, а вот то что не кратно 2 это хуже…
При этом как бы формально условие задачи выполняется… не определено же что должно быть, когда кол-во элементов не чётное, да и не сказано что все элементы должны выводится. 🙂
Но обращение к не определённым элементам массивов это конечно очень плохо.. поправил на то что в конце выводится вместо четырёх, всего два элемента:
Было:
Стало:
[/crayon]
я даже как то и не подумал, что можно вывести все элементы только один раз %)
Добавил решение.
И изменил своё:
Было:
Стало: