Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <Windows.h>
- int main()
- {
- int *arr, n, m, i, j, temp, k;
- scanf("%d%d", &n, &m);
- arr = (int*)malloc(n*m*sizeof(int));
- for (i = 0; i < n; i++)
- for (j = 0; j < m; j++)
- scanf("%d", arr+i*m+j);
- for (k = 0; k < n*m; k++) { //сортировка двумерного массива
- for (i = 0; i < n; i++) //сортировка по строкам
- for (j = 0; j < m-1; j++)
- if (*(arr+i*m+j) > *(arr+i*m+j+1))
- {
- temp = *(arr+i*m+j);
- *(arr+i*m+j) = *(arr+i*m+j+1);
- *(arr+i*m+j+1) = temp;
- }
- for (j = 0; j < m; j++) //сортировка по столбцам
- for (i = 0; i < n-1; i++)
- if (*(arr+i*m+j) > *(arr+i*m+j+1))
- {
- temp = *(arr+i*m+j);
- *(arr+i*m+j) = *(arr+i*m+j+1);
- *(arr+i*m+j+1) = temp;
- }
- }
- for (i = 0; i < n; i++) //если строка нечетная, делаем "реверс" элементов в строке
- if (i%2 == 1)
- for (j = 0; j < m/2; j++) {
- temp = *(arr+i*m+j);
- *(arr+i*m+j) = *(arr+i*m+m-j-1);
- *(arr+i*m+m-j-1) = temp;
- }
- for (i = 0; i < n; i++) {
- for (j = 0; j < m; j++)
- printf("%d ", *(arr+i*m+j));
- printf("\n");
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement