Guest User

Untitled

a guest
Apr 13th, 2015
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int fill(int n, int matrix[n][n]);
  4. int rotate(int n, int matrix[n][n]);
  5. int print(int n, int matrix[n][n]);
  6.  
  7. int main()
  8. {
  9.     int n;
  10.     scanf("%d", &n);
  11.    
  12.     int matrix[n][n];
  13.     fill(n, matrix);
  14.    
  15.     puts("Initial:\n");
  16.     print(n, matrix);
  17.    
  18.     rotate(n, matrix);
  19.     puts("Rotated to 90:\n");
  20.     print(n, matrix);
  21.    
  22.     rotate(n, matrix);
  23.     puts("Rotated to 180:\n");
  24.     print(n, matrix);
  25. }
  26.  
  27. int fill(int n, int matrix[n][n])
  28. {
  29.     int row;
  30.     int col;
  31.     int counter = 1;
  32.    
  33.     for (row = 0; row < n; row++)
  34.     {
  35.         for (col = 0; col < n; col++)
  36.         {
  37.             matrix[row][col] = counter++;
  38.         }
  39.     }
  40. }
  41.  
  42. int print(int n, int matrix[n][n])
  43. {
  44.     int row;
  45.     int col;
  46.    
  47.     for (row = 0; row < n; row++)
  48.     {
  49.         for (col = 0; col < n; col++)
  50.         {
  51.             printf("%d ", matrix[row][col]);
  52.         }
  53.         puts("\n");
  54.     }
  55. }
  56.  
  57. int rotate(int n, int matrix[n][n])
  58. {
  59.     int row;
  60.     int col;
  61.    
  62.     for (row = 0; row < n / 2; row++)
  63.     {
  64.         for(col = row + 1; col < n - row; col++)
  65.         {
  66.             int a = n - col - 1;
  67.             int b = n - row - 1;
  68.             int swap = matrix[a][row];
  69.            
  70.             matrix[a][row] = matrix[b][a];
  71.             matrix[b][a] = matrix[col][b];
  72.             matrix[col][b] = matrix[row][col];
  73.             matrix[row][col] = swap;
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment