Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #define N 10
  3.  
  4. typedef int matr_t[N][N];
  5.  
  6. int input_matr(matr_t matr, int row, int col)
  7. {
  8. int sc = 0;
  9. printf("\nInput matrix:\n");
  10. for (int i = 0; i < row; i++)
  11. {
  12. for (int j = 0; j < col; j++)
  13. sc += scanf("%d", &matr[i][j]);
  14. }
  15. return sc;
  16. }
  17.  
  18. void form_sum_arr(int *arr, matr_t matr, int row, int col)
  19. {
  20. for (int i = 0; i < row; i++)
  21. {
  22. arr[i] = 0;
  23. for (int j = 0; j < col; j++)
  24. arr[i] += matr[i][j];
  25. }
  26. }
  27.  
  28. void swap_rows(matr_t matr, int col, int row_1, int row_2)
  29. {
  30. int temp;
  31. for (int j = 0; j < col; j++)
  32. {
  33. temp = matr[row_1][j];
  34. matr[row_1][j] = matr[row_2][j];
  35. matr[row_2][j] = temp;
  36. }
  37. }
  38.  
  39. void sort_matr_rows(int *arr, matr_t matr, int row, int col)
  40. {
  41. int temp;
  42. for (int i = 1; i < row; i++)
  43. for (int j = 0; j < row - i; j++)
  44. if (arr[j] > arr[j + 1])
  45. {
  46. temp = arr[j];
  47. arr[j] = arr[j + 1];
  48. arr[j + 1] = temp;
  49. swap_rows(matr, col, j, j + 1);
  50. }
  51. }
  52.  
  53. void output_matr(matr_t matr, int row, int col)
  54. {
  55. printf("\nOutput matrix:\n");
  56. for (int i = 0; i < row; i++)
  57. {
  58. for (int j = 0; j < col; j++)
  59. printf("%d\t", matr[i][j]);
  60. printf("\n");
  61. }
  62. }
  63.  
  64. int main(void)
  65. {
  66. int row, col;
  67. int sum_arr[N];
  68. matr_t matr;
  69. int sc;
  70.  
  71. printf("Input row's number: ");
  72. sc = scanf("%d", &row);
  73. if (sc != 1 || row < 1 || row > N)
  74. {
  75. printf("error: Wrong row's number");
  76. return 1;
  77. }
  78.  
  79. printf("Input column's number: ");
  80. sc = scanf("%d", &col);
  81. if (sc != 1 || col < 1 || col > N)
  82. {
  83. printf("error: Wrong column's number");
  84. return 2;
  85. }
  86.  
  87. sc = input_matr(matr, row, col);
  88. if (sc != row * col)
  89. {
  90. printf("error: Wrong matrix format");
  91. return 3;
  92. }
  93.  
  94. form_sum_arr(sum_arr, matr, row, col);
  95. sort_matr_rows(sum_arr, matr, row, col);
  96. output_matr(matr, row, col);
  97.  
  98. return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement