Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // как делать сортировку двумерного массива?никак не догадаюсь сама.
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #define SIZE 4
- #define MINUS -10
- void pop_arr(int s,int a[SIZE][SIZE]);
- void pr_arr(int s,int a[SIZE][SIZE]);
- void main_diag(int s,int a[SIZE][SIZE]);//mirror main diagonal
- void dop_diag(int s,int a[SIZE][SIZE]);//mirror additional diagonal
- void blah(int s,int a[SIZE][SIZE]);//calls main and addition diagonal functions
- void sort_arr(int s,int a[SIZE][SIZE]);
- int main()
- {
- int arr[SIZE][SIZE];
- pop_arr(SIZE,arr);
- pr_arr(SIZE,arr);
- sort_arr(SIZE,arr);
- //blah(SIZE,arr);
- /*int arr[SIZE][SIZE]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
- pr_arr(SIZE,arr);
- printf("\n\n");
- main_diag(SIZE,arr);
- pr_arr(SIZE,arr);
- printf("\n\n");
- main_diag(SIZE,arr);//back to original array
- pr_arr(SIZE,arr);
- printf("\n\n");
- dop_diag(SIZE,arr);
- pr_arr(SIZE,arr);
- printf("\n\n");
- dop_diag(SIZE,arr);//back to origina array
- main_diag(SIZE,arr);
- dop_diag(SIZE,arr);
- pr_arr(SIZE,arr);
- printf("\n\n");*/
- return 0;
- }
- void pop_arr(int s,int a[SIZE][SIZE])
- {
- int i,j;
- for(i=0;i<s;i++)
- {
- for(j=0;j<s;j++)
- a[i][j]= rand()%20+MINUS;
- }
- }
- void pr_arr(int s,int a[SIZE][SIZE])
- {
- int i,j;
- for(i=0;i<s;i++)
- {
- for(j=0;j<s;j++)
- printf("%d\t",a[i][j]);
- printf("\n");
- }
- }
- void main_diag(int s,int a[SIZE][SIZE])
- {
- int i,j,temp;
- for(i=0;i<s;i++)
- {
- for(j=i;j<s;j++)
- {
- if(i!=j)
- {
- temp= a[i][j];
- a[i][j]= a[j][i];
- a[j][i] = temp;
- }
- }
- }
- }
- void dop_diag(int s,int a[SIZE][SIZE])
- {
- int i,j,temp,ti,tj;
- for(i=0;i<s;i++)
- {
- for(j=0;j<s-i;j++)
- {
- ti = s-j-1;
- tj = s-i-1;
- if(j!=s-i-1)//j!=s-i-1
- {
- temp= a[i][j];
- a[i][j]= a[ti][tj];
- a[ti][tj] = temp;
- }
- }
- }
- }
- void blah(int s,int a[SIZE][SIZE])
- {
- pr_arr(s,a);
- printf("\n\n");
- main_diag(s,a);
- pr_arr(s,a);
- printf("\n\n");
- main_diag(s,a);//back to original array
- pr_arr(s,a);
- printf("\n\n");
- dop_diag(s,a);
- pr_arr(s,a);
- printf("\n\n");
- dop_diag(s,a);//back to origina array
- main_diag(s,a);
- dop_diag(s,a);
- }
- void sort_arr(int s,int a[SIZE][SIZE])
- {
- int i,j,temp,ti,tj,max = MINUS;
- for(i=0;i<s;i++)
- {
- ti = i;
- max = MINUS;
- for(j=0;j<s;j++)
- {
- tj = j;
- if(a[i][j]>max)
- {
- printf("%d\t",a[i][j]);
- }
- }
- a[ti][tj]=max;
- pr_arr(s,a);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement