Тема: Сортування масиву

Потрібно відсортувати масив по сумі стрічок.
Написав алгоритм але чомусь  стрічки переставляються рандомно, а не так як треба(той, що має найбільщу суму наверх, найменша-на низ)

    
cout«"\t\t Zadana matricja"«endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<=n;j++)
{
cout«A[i][j]«" ";
}
cout«"\n";
}
int i=0,j=0;
for(i=0;i<m-1;i++)
{int i_max=i;
for(int j=i+1;j<m;j++)
{if(fabs(A[j][i])>fabs(A[i_max][i]))
{i_max=i;}
if(A[i_max][i]==0)
{cout«"Matricjs vurodzena\n"; return 13;
}
}
double R;
for(int j=i;j<=m;j++)
{
R=A[i_max][j];
A[i_max][j]=A[i][j];
A[i][j]=R;
}
}

2

Re: Сортування масиву

Не зовсім зрозуміла умова, рядок має найбільшу суму, уточніть будь ласка.

Білий Лунь

3

Re: Сортування масиву

сума елементів радяка найбільша
масив є матрицею квадратною

4

Re: Сортування масиву

1. Запишіть умову нормально. Стрічками іноді звуть символьні рядки (string), але рядки таблиці - ніколи.
2. Розставте відступи і наведіть такий шматок, який не викликатиме додаткових питань (тип A, наприклад). Читати такий код боляче.
3. Поясніть, якій алгоритм сортування ви тут хочете використовувувати. Їх багато різних.

5

Re: Сортування масиву

Тобто ми маємо квадратну матрицю і треба відсортувати її рядки. Той рядок, де найбільша сума елементів - нагору, а за ним - там де сума менша.
Така умова?

Білий Лунь

6

Re: Сортування масиву

Думаю почати можна із цього:

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100

/*
 * 
 */
int main(int argc, char** argv) {
    int i, j, n=0;
    
    printf("Input matrix size: ");
    while(n <= 0 || n > MAXSIZE){
        scanf("%d", &n);
    }
    int matrix[n][n];
    
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            matrix[i][j] = rand() % 10;
        }
    }
    printf("Generated matrix:\n");
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            printf("%d ", matrix[i][j]);
        }
        putchar('\n');
    }
    return (EXIT_SUCCESS);
}

Які пропозиції по сортуванню?
Можна створити дві змінні, які будуть зберігати суму елементів двох рядків, потім порівнювати ці змінні і змінювати місцями рядки.

Білий Лунь

7

Re: Сортування масиву

Масив потрібно відсортувати по сумі елементів рядків, тобто рядок в якому сума елементів найбільша  має стати першим, а той в якого сума елементів найменша має стати останнім