Advertisement
ignatif

Untitled

Dec 1st, 2015
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. using namespace std;
  3.  
  4. int main(){
  5.     int n, step = 1, x, y, startPoint,count = 0;
  6.     printf("Insert size of the matrix: \n");
  7.     scanf("%d", &n);
  8.  
  9.     int a[n][n];
  10.     for (int i = 0; i < n; ++i){
  11.         for (int j = 0; j < n; ++j){
  12. //          scanf("%d", &a[i][j]);
  13.             a[i][j] = (i+1)*10 + j+1;
  14.         }
  15.     }
  16.  
  17.     if (n % 2 == 1) startPoint = n/2;
  18.     else startPoint = n/2 - 1;
  19.     x = startPoint; y = startPoint;
  20.     printf("%d", a[x][y]);
  21.  
  22.     while (1){
  23.         for (int i = 0; i < step; i++){
  24.             if (count == n*n-1) {printf("\n"); return 0;};
  25.             y += 1;
  26.             printf(" %d", a[y][x]);
  27.             count += 1;
  28.         }
  29.         for (int i = 0; i < step; i++){
  30.             if (count == n*n-1) {printf("\n"); return 0;};
  31.             x += 1;
  32.             printf(" %d", a[y][x]);
  33.             count += 1;
  34.         }
  35.         step += 1;
  36.         for (int i = 0; i < step; i++){
  37.             if (count == n*n - 1) {printf("\n"); return 0;};
  38.             y -= 1;
  39.             printf(" %d", a[y][x]);
  40.             count += 1;
  41.         }
  42.         for (int i = 0; i < step; i++){
  43.             if (count == n*n - 1) {printf("\n"); return 0;};
  44.             x -= 1;
  45.             printf(" %d", a[y][x]);
  46.             count += 1;
  47.         }
  48.         step += 1;
  49.     }
  50.  
  51.     for (int i = 0; i < n; ++i){
  52.         for (int j = 0; j < n; ++j){
  53.             printf("%d", a[i][j]);
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement