Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <Windows.h>
  3.  
  4. int main()
  5. {
  6. int *arr, n, m, i, j, temp, k;
  7.  
  8. scanf("%d%d", &n, &m);
  9.  
  10. arr = (int*)malloc(n*m*sizeof(int));
  11.  
  12. for (i = 0; i < n; i++)
  13. for (j = 0; j < m; j++)
  14. scanf("%d", arr+i*m+j);
  15.  
  16.  
  17. for (k = 0; k < n*m; k++) { //сортировка двумерного массива
  18.  
  19. for (i = 0; i < n; i++) //сортировка по строкам
  20. for (j = 0; j < m-1; j++)
  21. if (*(arr+i*m+j) > *(arr+i*m+j+1))
  22. {
  23. temp = *(arr+i*m+j);
  24. *(arr+i*m+j) = *(arr+i*m+j+1);
  25. *(arr+i*m+j+1) = temp;
  26. }
  27.  
  28. for (j = 0; j < m; j++) //сортировка по столбцам
  29. for (i = 0; i < n-1; i++)
  30. if (*(arr+i*m+j) > *(arr+i*m+j+1))
  31. {
  32. temp = *(arr+i*m+j);
  33. *(arr+i*m+j) = *(arr+i*m+j+1);
  34. *(arr+i*m+j+1) = temp;
  35. }
  36. }
  37.  
  38. for (i = 0; i < n; i++) //если строка нечетная, делаем "реверс" элементов в строке
  39. if (i%2 == 1)
  40. for (j = 0; j < m/2; j++) {
  41. temp = *(arr+i*m+j);
  42. *(arr+i*m+j) = *(arr+i*m+m-j-1);
  43. *(arr+i*m+m-j-1) = temp;
  44. }
  45.  
  46. for (i = 0; i < n; i++) {
  47. for (j = 0; j < m; j++)
  48. printf("%d ", *(arr+i*m+j));
  49. printf("\n");
  50. }
  51.  
  52. system("pause");
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement