Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define N 10
- typedef int matr_t[N][N];
- int input_matr(matr_t matr, int row, int col)
- {
- int sc = 0;
- printf("\nInput matrix:\n");
- for (int i = 0; i < row; i++)
- {
- for (int j = 0; j < col; j++)
- sc += scanf("%d", &matr[i][j]);
- }
- return sc;
- }
- void form_sum_arr(int *arr, matr_t matr, int row, int col)
- {
- for (int i = 0; i < row; i++)
- {
- arr[i] = 0;
- for (int j = 0; j < col; j++)
- arr[i] += matr[i][j];
- }
- }
- void swap_rows(matr_t matr, int col, int row_1, int row_2)
- {
- int temp;
- for (int j = 0; j < col; j++)
- {
- temp = matr[row_1][j];
- matr[row_1][j] = matr[row_2][j];
- matr[row_2][j] = temp;
- }
- }
- void sort_matr_rows(int *arr, matr_t matr, int row, int col)
- {
- int temp;
- for (int i = 1; i < row; i++)
- for (int j = 0; j < row - i; j++)
- if (arr[j] > arr[j + 1])
- {
- temp = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = temp;
- swap_rows(matr, col, j, j + 1);
- }
- }
- void output_matr(matr_t matr, int row, int col)
- {
- printf("\nOutput matrix:\n");
- for (int i = 0; i < row; i++)
- {
- for (int j = 0; j < col; j++)
- printf("%d\t", matr[i][j]);
- printf("\n");
- }
- }
- int main(void)
- {
- int row, col;
- int sum_arr[N];
- matr_t matr;
- int sc;
- printf("Input row's number: ");
- sc = scanf("%d", &row);
- if (sc != 1 || row < 1 || row > N)
- {
- printf("error: Wrong row's number");
- return 1;
- }
- printf("Input column's number: ");
- sc = scanf("%d", &col);
- if (sc != 1 || col < 1 || col > N)
- {
- printf("error: Wrong column's number");
- return 2;
- }
- sc = input_matr(matr, row, col);
- if (sc != row * col)
- {
- printf("error: Wrong matrix format");
- return 3;
- }
- form_sum_arr(sum_arr, matr, row, col);
- sort_matr_rows(sum_arr, matr, row, col);
- output_matr(matr, row, col);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement