Упорядочить столбцы матрицы по убыванию суммы элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана вещественная матрица размером 5х5.Упорядочить её столбцы по убыванию суммы элементов.

Решение задачи: «Упорядочить столбцы матрицы по убыванию суммы элементов»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define AUMAN(a) a == 1 ? scanf("%lf", &arr[i][j]) : arr[i][j] =  (double)rand() / 1234.
  5.  
  6. int main()
  7. {
  8.     void srt(double[5][5], double*);
  9.     void prtn(double[5][5], double*);
  10.     srand(time(NULL));
  11.     double arr[5][5], sort[5]{ 0 };
  12.     int m;
  13.     printf("For manual enter 1, for auto any number: ");
  14.     scanf("%d", &m);
  15.     for (int i = 0; i < 5; ++i)
  16.         for (int j = 0; j < 5; ++j)
  17.             AUMAN(m);
  18.     for (int i = 0; i < 5; ++i)
  19.         for (int j = 0; j < 5; ++j)
  20.             sort[i] += arr[j][i];
  21.     prtn(arr, sort);
  22.     srt(arr, sort);
  23.     prtn(arr, sort);
  24.     return 0;
  25. }
  26. //-------------------------------------------------------------
  27. void prtn(double arr[5][5], double *sort)
  28. {
  29.     for (int i = 0; i < 5; ++i) {
  30.         printf("\n");
  31.         for (int j = 0; j < 5; ++j)
  32.             printf("[%lf]\t", arr[i][j]);
  33.     }
  34.     printf("\n\n");
  35.     for (int i = 0; i < 5; ++i)
  36.         printf("<sum elements>\t");
  37.     printf("\n");
  38.     for (int i = 0; i < 5; ++i)
  39.         printf("<%lf>\t", sort[i]);
  40.     printf("\n\n");
  41. }
  42. //-------------------------------------------------------------
  43. void srt(double arr[5][5], double *sort)
  44. {
  45.     int x; 
  46.     double nm;
  47.     for (int j = 0; j < 5; ++j) {
  48.         for (int i = x = j, nm = sort[j]; i < 5; ++i)
  49.             if (nm > sort[i]) {
  50.                 x = i;
  51.                 nm = sort[i];
  52.             }
  53.         nm = sort[x];
  54.         sort[x] = sort[j];
  55.         sort[j] = nm;
  56.             for (int l = 0; l < 5; ++l) {
  57.                 nm = arr[l][x];
  58.                 arr[l][x] = arr[l][j];
  59.                 arr[l][j] = nm;
  60.             }
  61.         }
  62. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы