Matrix16. Дана квадратная матрица $$A$$ порядка $$M$$ ($$M$$ — нечетное число). Начиная с элемента $$A_{1,1}$$ и перемещаясь против часовой стрелки, вывести все ее элементы по спирали: первый столбец, последняя строка, последний столбец в обратном порядке, первая строка в обратном порядке, оставшиеся элементы второго столбца и т. д.; последним выводится центральный элемент матрицы.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
program Matrix16; var a:array [1..10,1..10] of integer; M, i, j, i2:Integer; begin Write('M: '); Readln(M); for i:=1 to M do begin writeln(i,': '); for j:=1 to M do begin Write(j,' : '); Read(a[i,j]); end; end; for i2:=1 to M div 2 do begin For j:=i2 to M-i2+1 do Write(a[j,i2],' '); For i:=i2+1 to M-i2+1 do Write(a[M-i2+1,i],' '); For j:=M-i2 downto i2 do Write(a[j,M-i2+1],' '); For i:=M-i2 downto i2+1 do Write(a[i2,i],' '); writeln(''); end; writeln(a[M div 2+1,M div 2+1]); end. |
Другие задачи из раздела Matrix можно посмотреть здесь.
Комментарии: