Упорядочить столбцы матрицы по убыванию суммы элементов - 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;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д