Упорядочить столбцы матрицы по убыванию суммы элементов - 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;
            }
        }
}

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


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

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

12   голосов , оценка 4 из 5
Похожие ответы