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

Строки матрицы упорядочить по возрастанию методом линейного выбора с подсчетом

28.10.2015, 15:11. Просмотров 940. Ответов 4
Метки нет (Все метки)

Если сумма элементов матрицы А размерности nxn больше удвоенной суммы максимального и минимального элементов матрицы, то все строки матрицы упорядочить по возрастанию методом линейного выбора с подсчетом, в противном случае матрицу оставить без изменения.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2015, 15:11
Ответы с готовыми решениями:

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

Упорядочить массив по возрастанию методом выбора
Дан массив вещественных чисел, состоящих из N(20) элементов. Упорядочить ее по возрастанию методом...

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

Упорядочить одномерный числовой массив по возрастанию методом выбора
Упорядочить одномерный числовой массив по возрастанию методом выбора. При этом выбирается...

Упорядочить строки по убыванию методом выбора
// лаба 6.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h"...

4
kJIuk
15 / 15 / 10
Регистрация: 19.10.2015
Сообщений: 34
28.10.2015, 16:57 2
Примерно так
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
#include <iostream>
#include <iomanip>
 
int main()
{
    const unsigned n = 4;
    int min(INT_MAX), max(INT_MIN), sum(0);
    unsigned i(0), j(0);
 
    int matr[][n] = { {1, 2, 3, 1},
                     {2, 2, 1, 3},
                     {2, 1, 3, 2},
                     {1, 2, 3, 2} };
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            sum += matr[i][j];
            if (max < matr[i][j]) max = matr[i][j];
            if (min > matr[i][j]) min = matr[i][j];
        }
    }
 
    
    if (sum > 2 * (min + max))
    {
        for (i = 0; i < n; i++)
        {
            const unsigned tmpn(max - min + 1);
            unsigned* tmp = new unsigned[tmpn];
            for (j = 0; j < tmpn; j++)
                tmp[j] = 0;
 
            for (j = 0; j < n; j++)
                ++tmp[matr[i][j] - min];
            
            unsigned k = 0;
            for (j = 0; j < tmpn; j++)
            {
                while (tmp[j] && k < n)
                {
                    matr[i][k++] = j + min;
                    tmp[j]--;
                }
                
            }
            delete tmp;
        }
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
                std::cout << std::setw(3) <<matr[i][j];
 
            std::cout << std::endl;
        }
    }
 
    system("PAUSE");
    return 1;
}
1
ShpiliVilly
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 8
28.10.2015, 17:48  [ТС] 3
забыл уточнить-она должна быть на С.
0
kJIuk
15 / 15 / 10
Регистрация: 19.10.2015
Сообщений: 34
29.10.2015, 10:07 4
Лучший ответ Сообщение было отмечено ShpiliVilly как решение

Решение

Попробуй так, но у меня нет чисто сишного компилятора
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
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    const unsigned n = 4;
    int min = 32767, max = -32767, sum = 0;
    unsigned i = 0, j = 0;
 
    int matr[][n] = { {1, 2, 3, 1},
                     {2, 2, 1, 3},
                     {2, 1, 3, 2},
                     {1, 2, 3, 2} };
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            sum += matr[i][j];
            if (max < matr[i][j]) max = matr[i][j];
            if (min > matr[i][j]) min = matr[i][j];
        }
    }
 
    
    if (sum > 2 * (min + max))
    {
        for (i = 0; i < n; i++)
        {
            const unsigned tmpn = max - min + 1;
            unsigned *tmp;
            tmp = (unsigned*)calloc(tmpn, sizeof(unsigned));
            for (j = 0; j < tmpn; j++)
                tmp[j] = 0;
 
            for (j = 0; j < n; j++)
                ++tmp[matr[i][j] - min];
            
            unsigned k = 0;
            for (j = 0; j < tmpn; j++)
            {
                while (tmp[j] && k < n)
                {
                    matr[i][k++] = j + min;
                    tmp[j]--;
                }
                
            }
            free(tmp);
        }
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
                printf("\t%i", matr[i][j]);
 
            printf("\n");
        }
    }
 
    getchar();
    return 1;
}
1
ShpiliVilly
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 8
29.10.2015, 15:39  [ТС] 5
Спасибо большое!Все компилируется и работатет!
0
29.10.2015, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2015, 15:39

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

Упорядочить элементы строк матрицы по возрастанию их значений методом обмена
Упорядочить элементы строк матрицы по возрастанию их значений методом обмена fi(aij)-сумма...

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


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

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

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