Phoenix_x

Untitled

Feb 7th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.08 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. //декларация на функции:
  7. void left();
  8. void bottom();
  9. void right();
  10. void top();
  11. void printFrame();
  12.  
  13. const int x = 5; //брой стълбове на матрицата
  14. const int y = 5; //брой редове на матрицата
  15.  
  16. int fillNumber = 0; //брояч, колко числа сме принтирали
  17. int goInside = 0; //увеличава се за по-вътрешни елементи в матрицата
  18. int matrix[y][x] = //първо се пише колко реда има, а след това колко стълба ([y][x])
  19. {
  20.     { 1,   2,   3,   4,   5 },
  21.     { 16,   17, 18,  19,  6 },
  22.     { 15,   24, 25, 20,   7 },
  23.     { 14,   23,  22, 21,  8 },
  24.     { 13,   12,  11, 10,  9 }
  25. };
  26.  
  27. void main()
  28. {
  29.     //докато не изведеж всички числа от матрицата
  30.     while (fillNumber <= x * y) { // 5 x 5 = 25
  31.         printFrame(); //изведи тези, които образуват рамка (горе -> дясно -> долу -> ляво)
  32.         goInside++; //придвижи се на вътре
  33.     }
  34. }
  35.  
  36. void left() //принтира елементи от лявата страна
  37. {
  38.     for (int i = y - 2 - goInside; i >= 1 + goInside; i--)
  39.     {
  40.         cout << matrix[i][0 + goInside] << " ";
  41.         fillNumber++;
  42.     }
  43. }
  44.  
  45. void right() { //принтира елементи от дясната страна
  46.     for (int i = 1 + goInside; i < y - goInside; i++) {
  47.         cout << matrix[i][x - 1 - goInside] << " ";
  48.         fillNumber++;
  49.     }
  50. }
  51.  
  52. void  top() { //принтира елементи от горната страна
  53.     for (int i = 0 + goInside; i < x - goInside; i++) {
  54.         cout << matrix[0 + goInside][i] << " ";
  55.         fillNumber++;
  56.     }
  57. }
  58.  
  59. void bottom() { //принтира елементи от долната страна
  60.     for (int i = x - goInside - 2; i >= 0 + goInside; i--) {
  61.         cout << matrix[y - 1 - goInside][i] << " ";
  62.         fillNumber++;
  63.     }
  64. }
  65.  
  66. void printFrame() //принтира числа, образуващи рамка
  67. {
  68.     top();
  69.     right();
  70.     bottom();
  71.     left();
  72. }
Advertisement
Add Comment
Please, Sign In to add comment