Created
May 14, 2014 19:34
-
-
Save georgyangelov/7aed4b7b2fccd523fd17 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main() | |
{ | |
// Константи - брой редове (M) и колони (N) в матрицата | |
const int M = 4, N = 6; | |
// Дефиниция на матрица MxN и задаване на стойности | |
int matrix[M][N] = { | |
{ 1, 2, 3, 4, 5, 6 }, | |
{ 16, 17, 18, 19, 20, 7 }, | |
{ 15, 24, 23, 22, 21, 8 }, | |
{ 14, 13, 12, 11, 10, 9 } | |
}; | |
// Променливи, нужни за обхождането | |
int starti = 0, endi = M - 1; | |
int startj = 0, endj = N - 1; | |
// Обхождане в спирала (така, че числата да се изпишат последователно от 1 до 24) | |
// Повтаряме долните цикли докато не станат невалидни ограниченията | |
while (starti <= endi && startj <= endj) | |
{ | |
// Обхождане хоризонтално ( --> ) реда starti | |
for (int j = startj; j <= endj; j++) | |
cout << matrix[starti][j] << ' '; | |
// Увеличаване на starti, защото текущия ред (с номер starti) вече е обходен от цикъла | |
starti++; | |
// Обхождане вертикално надолу колоната endj | |
for (int i = starti; i <= endi; i++) | |
cout << matrix[i][endj] << ' '; | |
// Намаляване на endj, защото текущия стълб (с номер endj) е вече обходен | |
endj--; | |
// Обхождане хоризонтално ( <-- ) реда endi | |
for (int j = endj; j >= startj; j--) | |
cout << matrix[endi][j] << ' '; | |
// Аналогично на горните - намаляване на endi, защото реда endi е обходен | |
endi--; | |
// Обхождане вертикално нагоре колоната startj | |
for (int i = endi; i >= starti; i--) | |
cout << matrix[i][startj] << ' '; | |
// Увеличаване на startj - колоната startj е вече обходена от горния цикъл | |
startj++; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment