Упорядочить столбцы матрицы по убыванию суммы элементов - C (СИ)
Формулировка задачи:
Дана вещественная матрица размером 5х5.Упорядочить её столбцы по убыванию суммы элементов.
Решение задачи: «Упорядочить столбцы матрицы по убыванию суммы элементов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define AUMAN(a) a == 1 ? scanf("%lf", &arr[i][j]) : arr[i][j] = (double)rand() / 1234. int main() { void srt(double[5][5], double*); void prtn(double[5][5], double*); srand(time(NULL)); double arr[5][5], sort[5]{ 0 }; int m; printf("For manual enter 1, for auto any number: "); scanf("%d", &m); for (int i = 0; i < 5; ++i) for (int j = 0; j < 5; ++j) AUMAN(m); for (int i = 0; i < 5; ++i) for (int j = 0; j < 5; ++j) sort[i] += arr[j][i]; prtn(arr, sort); srt(arr, sort); prtn(arr, sort); return 0; } //------------------------------------------------------------- void prtn(double arr[5][5], double *sort) { for (int i = 0; i < 5; ++i) { printf("\n"); for (int j = 0; j < 5; ++j) printf("[%lf]\t", arr[i][j]); } printf("\n\n"); for (int i = 0; i < 5; ++i) printf("<sum elements>\t"); printf("\n"); for (int i = 0; i < 5; ++i) printf("<%lf>\t", sort[i]); printf("\n\n"); } //------------------------------------------------------------- void srt(double arr[5][5], double *sort) { int x; double nm; for (int j = 0; j < 5; ++j) { for (int i = x = j, nm = sort[j]; i < 5; ++i) if (nm > sort[i]) { x = i; nm = sort[i]; } nm = sort[x]; sort[x] = sort[j]; sort[j] = nm; for (int l = 0; l < 5; ++l) { nm = arr[l][x]; arr[l][x] = arr[l][j]; arr[l][j] = nm; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д