Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
SlimPull
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 41
1

Упорядочить элементы строк матрицы по невозрастанию, а сами строки - по возрастанию элементов 10-го столбца

24.03.2018, 21:15. Просмотров 761. Ответов 1
Метки нет (Все метки)

Дана матрица Х[8,10]. Упорядочить элементы строк матрицы по невозрастанию, а сами строки по возрастанию элементов 10-го столбца (использовать сортировку вставками).

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2018, 21:15
Ответы с готовыми решениями:

Упорядочить строки матрицы по невозрастанию максимальных элементов строк
Дана действительная матрица размером m * n: упорядочит строки матрицы по невозрастанию максимальных...

Вычислить произведение четных элементов матрицы; упорядочить элементы второго столбца по возрастанию
Составить программу, в которой 1) организовать ввод матрицы размера mxn из целых чисел;...

Упорядочить строки матрицы по возрастанию сумм элементов строк
Здравствуйте. Задача упорядочить строки матрицы по возрастанию сумм элементов строк. Вопрос, как...

Упорядочить элементы строк матрицы, в которых есть хотя бы один отрицательный элемент, по невозрастанию
Дана целочисленная матрица {Aij}i=A,...,n; j=1..n, n<=100 Если сумма наибольшего и наименьшего...

Упорядочить элементы строк матрицы по убыванию, а сами строки - по возрастанию элементов первого столбца
Дана матрица. Упорядочить элементы строк матрицы по убыванию, а сами строки по возрастанию...

1
stake-k26
676 / 467 / 355
Регистрация: 25.04.2016
Сообщений: 1,333
25.03.2018, 02:46 2
Лучший ответ Сообщение было отмечено SlimPull как решение

Решение

Примерно так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* **************************************************************************
 * Дана матрица Х[8,10]. Упорядочить элементы строк матрицы по невозрастанию,
 * а сами строки по возрастанию элементов 10-го столбца.
 * *************************************************************************/
void PrintMatrix (int **, int, int);
void SortArray (int *, int);
void SwapArray (int *, int *, const int);
 
int main (void)
{
    srand(time(NULL));
    const int m = 8, n = 10;
    int **x = NULL;
    int i, k;
    size_t e;
    if ((x = (int **) malloc(m * sizeof(int*))) == NULL) return -1;
    if ((x[0] = (int*) malloc(m * n * sizeof(int))) == NULL) {free(x); return -1;}
    for (e=1; e<m; e++) x[e] = x[e-1] + n;
 
    /* заполняем 'матрицу' случайными целыми */
    int max = n*m;
    for (i=0; i<m; i++)
        for (k=0; k<n; k++)
            x[i][k] = rand() %max;
    printf("Original Matrix:\n");
    PrintMatrix(x, m, n);
 
    /* сортируем элементы внутри строк по невозрастанию */
    for (i=0; i<m; i++)
        SortArray(x[i], n);
    //printf("\n");
    //PrintMatrix(x, m, n);
 
    /* сортируем строки по 10 столбцу */
    max = n-1;
    for (i=0; i<m; i++)
        for (k=1; k<(m-i); k++)
            if (x[k-1][max] > x[k][max]) { SwapArray(x[k-1], x[k], n); }
            // ^^^ эффективнее будет поменять указатель на указатель, подумайте
    printf("\nSorted Matrix:\n");
    PrintMatrix(x, m, n);
    printf("\n");
 
    /* конец программы */
    free(x[0]);
    free(x);
    return 0;
}
// ------ выводим 'матрицу' на экран -------
void PrintMatrix (int ** a, int b, int c)
{
    int i, j;
    for(i=0; i<b; i++)
    {
        for(j=0; j<c; j++)
            printf("%4i", a[i][j]);
        printf("\n");
    }
}
// ------ сортируем по невозрастанию -------
void SortArray (int * a, int n)
{
    int i, j, t;
    for (i=0; i<n; i++)
        for (j=1; j<(n-i); j++)
            if (a[j-1] < a[j])
            {
                t = a[j-1];
                a[j-1] = a[j];
                a[j] = t;
            }
}
// ------ меняем два массива местами -------
void SwapArray (int *a, int *b, const int k)
{
    int t, i;
    for (i=0; i<k; i++)
    {
        t = a[i];
        a[i] = b[i];
        b[i] = t;
    }
}
Подумайте над тем как изменить алгоритм сортировки на сортировку вставками. Так же подумайте над тем, как переписывать две строки, меняя указатели местами.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2018, 02:46

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию произведения чётных элементов строк
Дана матрица X. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию...

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию суммы элементов
Дана матрица Х. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию...

Массив: Упорядочить элементы строк матрицы по возрастанию, а сами строки по неубыванию произведения четных элементов строк
Дана матрица. Упорядочить элементы строк матрицы по возрастанию, а сами строки по неубыванию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru