Advertisement
Lisaveta777

2.Turn 2D array clockwise

Dec 23rd, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.54 KB | None | 0 0
  1. //Пейстбин, не доделано, с помощью временного одномерного массива, алгоритм змачительно сложнее, чем с помощью
  2. //временного двумерного
  3. //Хочу вообще с помощью временной переменной типа инт сделать, без временных массивов, пока никак
  4.  
  5. #include <stdio.h>
  6. #include <math.h>
  7. #define SIZE 4
  8. void pop_arr(int s,int a[s][s]);
  9. void pr_arr(int s,int a[s][s]);
  10. void turn_arr(int s,int a[s][s]);
  11.  
  12. int main()
  13. {
  14.     int arr[SIZE][SIZE]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
  15.     pr_arr(SIZE,arr);
  16.     turn_arr(SIZE,arr);
  17.     pr_arr(SIZE,arr);
  18.  
  19.     return 0;
  20. }
  21. void turn_arr(int s,int a[s][s])
  22. {
  23.     int i,j,ii,k,temp,temp_row[s];
  24.  
  25.     //temp_row made out of row in this block
  26.     /*for(i=0;i<s;i++)//row in array a
  27.     {ii=0;//index name used for temp_row
  28.         for(j=0;j<s;j++)//column in array a
  29.         {
  30.             temp_row[ii]= a[i][j];
  31.             //printf("i=%d,j=%d,ii=%d\n",i,j,ii);
  32.             ii++;
  33.         }
  34.         //printf("t[0]-%d,t[1]-%d,t[2]-%d,t[3]-%d\n",temp_row[0],temp_row[1],temp_row[2],temp_row[3]);
  35.  
  36.     }*/
  37.  
  38.     //temp_row made out of column in this block
  39.     for(j=0;j<s;j++)//row in array a
  40.     {ii=0;//index name used for temp_row
  41.         for(i=0;i<s;i++)//column in array a
  42.         {
  43.             temp_row[ii]= a[i][j];//temp_row is for holding i-st row temporary(made of row)
  44.             //printf("i=%d,j=%d,ii=%d\n",i,j,ii);
  45.             ii++;
  46.         }
  47.         for(ii=0;ii<s/2;ii++)//reverse temp_row
  48.         {
  49.             temp=temp_row[ii];
  50.             temp_row[ii]=temp_row[s-ii-1];
  51.             temp_row[s-ii-1]=temp;
  52.         }
  53.         printf("t[0]-%d,t[1]-%d,t[2]-%d,t[3]-%d\n",temp_row[0],temp_row[1],temp_row[2],temp_row[3]);
  54.  
  55.        for(ii=0;ii<s;ii++)
  56.             a[i][ii]=temp_row[ii];
  57.             printf("INSIDE TURN\n");
  58.         pr_arr(s,a);
  59.     }
  60.  
  61.  
  62.  
  63.    /* for(i=0;i<s;i++)
  64.     {
  65.         for(j=0;j<s;j++)
  66.             temp_arr[i][j]= a[s-j-1][i];//po chasovoj strelke
  67.             //a2[i][j]=a[j][s-i-1];//protiv chasovoi strelki
  68.     }
  69.     for(i=0;i<s;i++)
  70.         for(j=0;j<s;j++)
  71.         a[i][j]=temp_arr[i][j];*/
  72. }
  73. void pop_arr(int s,int a[s][s])
  74. {
  75.     int i,j;
  76.     for(i=0;i<s;i++)
  77.         for(j=0;j<s;j++)
  78.          a[i][j]=rand()%20+1;
  79. }
  80. void pr_arr(int s,int a[s][s])
  81. {
  82.     int i,j;
  83.     for(i=0;i<s;i++)
  84.         {for(j=0;j<s;j++)
  85.         printf("%d\t",a[i][j]);
  86.     printf("\n");}
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement