Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- //декларация на функции:
- void left();
- void bottom();
- void right();
- void top();
- void printFrame();
- const int x = 5; //брой стълбове на матрицата
- const int y = 5; //брой редове на матрицата
- int fillNumber = 0; //брояч, колко числа сме принтирали
- int goInside = 0; //увеличава се за по-вътрешни елементи в матрицата
- int matrix[y][x] = //първо се пише колко реда има, а след това колко стълба ([y][x])
- {
- { 1, 2, 3, 4, 5 },
- { 16, 17, 18, 19, 6 },
- { 15, 24, 25, 20, 7 },
- { 14, 23, 22, 21, 8 },
- { 13, 12, 11, 10, 9 }
- };
- void main()
- {
- //докато не изведеж всички числа от матрицата
- while (fillNumber <= x * y) { // 5 x 5 = 25
- printFrame(); //изведи тези, които образуват рамка (горе -> дясно -> долу -> ляво)
- goInside++; //придвижи се на вътре
- }
- }
- void left() //принтира елементи от лявата страна
- {
- for (int i = y - 2 - goInside; i >= 1 + goInside; i--)
- {
- cout << matrix[i][0 + goInside] << " ";
- fillNumber++;
- }
- }
- void right() { //принтира елементи от дясната страна
- for (int i = 1 + goInside; i < y - goInside; i++) {
- cout << matrix[i][x - 1 - goInside] << " ";
- fillNumber++;
- }
- }
- void top() { //принтира елементи от горната страна
- for (int i = 0 + goInside; i < x - goInside; i++) {
- cout << matrix[0 + goInside][i] << " ";
- fillNumber++;
- }
- }
- void bottom() { //принтира елементи от долната страна
- for (int i = x - goInside - 2; i >= 0 + goInside; i--) {
- cout << matrix[y - 1 - goInside][i] << " ";
- fillNumber++;
- }
- }
- void printFrame() //принтира числа, образуващи рамка
- {
- top();
- right();
- bottom();
- left();
- }
Advertisement
Add Comment
Please, Sign In to add comment