Advertisement
Lisaveta777

Diagonals

Nov 10th, 2018
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #define SIZE 4
  5.  
  6. void pop_arr(int s,int a[SIZE][SIZE]);
  7. void pr_arr(int s,int a[SIZE][SIZE]);
  8. void main_diag(int s,int a[SIZE][SIZE]);//mirror main diagonal
  9. void dop_diag(int s,int a[SIZE][SIZE]);//mirror additional diagonal
  10.  
  11. int main()
  12. {
  13.     int arr[SIZE][SIZE]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
  14.  
  15.     printf("\nORIGINAL ARRAY:\n");
  16.     pr_arr(SIZE,arr);
  17.  
  18.     printf("\nAFTER MIRROWING MAIN DIAGONAL:\n");
  19.     main_diag(SIZE,arr);
  20.     pr_arr(SIZE,arr);
  21.  
  22.     printf("\nBACK TO ORIGINAL(THROUGHT MIRROWING MAIN):\n");
  23.     main_diag(SIZE,arr);
  24.     pr_arr(SIZE,arr);
  25.  
  26.     printf("\nAFTER MIRROWING ADD DIAGONAL:\n");
  27.     dop_diag(SIZE,arr);
  28.     pr_arr(SIZE,arr);
  29.  
  30.     printf("\nBACK TO ORIGINAL(THROUGHT MIRROWING ADD):\n");
  31.     dop_diag(SIZE,arr);
  32.     pr_arr(SIZE,arr);
  33.  
  34.     printf("\nCOMBINES MAIN AND ADD MIRROWING:\n");
  35.     main_diag(SIZE,arr);
  36.     dop_diag(SIZE,arr);
  37.     pr_arr(SIZE,arr);
  38.  
  39.     printf("\nBACK TO ORIGINAL THROUGH MAIN AND ADD MIRROWING:\n");
  40.     main_diag(SIZE,arr);
  41.     dop_diag(SIZE,arr);
  42.     pr_arr(SIZE,arr);
  43.  
  44.     return 0;
  45. }
  46. void pop_arr(int s,int a[SIZE][SIZE])
  47. {
  48.     int i,j;
  49.     for(i=0;i<s;i++)
  50.     {
  51.         for(j=0;j<s;j++)
  52.             a[i][j]= rand()%20-10;
  53.     }
  54. }
  55.  
  56. void pr_arr(int s,int a[SIZE][SIZE])
  57. {
  58.     int i,j;
  59.     for(i=0;i<s;i++)
  60.     {
  61.         for(j=0;j<s;j++)
  62.             printf("%d\t",a[i][j]);
  63.         printf("\n");
  64.     }
  65. }
  66. void main_diag(int s,int a[SIZE][SIZE])
  67. {
  68.     int i,j,temp;
  69.     for(i=0;i<s;i++)
  70.     {
  71.         for(j=i;j<s;j++)
  72.         {
  73.            if(i!=j)
  74.            {
  75.                temp= a[i][j];
  76.                a[i][j]= a[j][i];
  77.                a[j][i]  = temp;
  78.            }
  79.         }
  80.     }
  81. }
  82.  
  83. void dop_diag(int s,int a[SIZE][SIZE])
  84. {
  85.     int i,j,temp,ti,tj;
  86.     for(i=0;i<s;i++)
  87.     {
  88.         for(j=0;j<s-i;j++)
  89.         {
  90.             ti = s-j-1;
  91.             tj = s-i-1;
  92.            if(j!=s-i-1)//j!=s-i-1
  93.            {
  94.                temp= a[i][j];
  95.                a[i][j]= a[ti][tj];
  96.                a[ti][tj]  = temp;
  97.            }
  98.         }
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement