Дана действительная матрица размером m * n; упорядочить (переставить) строки матрицы по невозрастанию сумм элементов строк. Разрешается использовать дополнительный массив. Алгоритм: 1.Создаем переменные и массивы. #include <stdio.h> #include <conio.h> #include <stdlib.h> #define M 5 #define N 5 int main () { int a[M][N];//основная матрица int i, j, k;//переменные int sum[5];//массив для хранения сумм строк int dop[5];//дополнительный массив для перестановки строк матрицы int pr;//количество проходов int tmp;//временная переменная clrscr ();//очистка экрана randomize();//ф-я генерации чисел for (i = 0;i<M;i++) for (j = 0; j<N; j++) { a[i][j]=random(10); } for (i = 0; i<5; i++) { //вывод изначальной матрицы for (j = 0; j<5; j++) printf ("%4d", a[i][j]); printf ("\n"); } printf("\n"); for (i = 0; i<5; i++){//заносим результат сумм в sum sum[i]=0; for (j = 0; j<5; j++) sum[i]+= a[i][j]; } for (pr = 1; pr<5; pr++){ //количество проходов for (i = 0; i<5; i++){ //число сравненний if (sum[i] < sum[i+1]){ tmp = sum[i]; sum[i] = sum[i+1]; sum[i+1] = tmp; for(k = 0; k < M; k++) {//меняем изначальную матрицу tmp = a[i][k]; a[i][k] = a[i+1][k]; a[i+1][k] = tmp; } } } } for (i = 0; i < 5; i++) {//вывод на экран отсортированной матрицы for (j = 0; j < 5; j++) printf ("%4d", a[i][j]); printf ("\n"); } getch (); return 0; }
|
|||||||