Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571

Сортировка строк матрицы

11.12.2011, 12:30. Показов 2051. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, я не как не могу придумать ка сортировать строки матрицы, другими словами
1. Я нашел суму парных отрицательные элементов каждой строки матрицы
C++
1
2
3
4
5
6
7
8
for(i = 0; i < n; i++) {
  sum = 0; sum1 = 0;
  for(j = 1; j < m; j += 2) {
    if(matr[i][j]<0) {
      sum += matr[i][j];
  }
}
printf("\n%d", sum);
Работает
2. А теперь нужно используя суму этих строк отсортировать по упаданию (именно строки, а не результат сумы).
Подскажите идею
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.12.2011, 12:30
Ответы с готовыми решениями:

Сортировка строк
Как отсортировать строки, если, например, дано: &quot;11:00:01_1_1_ 12:30:00_0_1_ 09:40:05_1_0_&quot; После сортировки должно...

сортировка строк
помогите пожалуйста решить задачу в билдере. в Edite вводим цифры не упорядоченные, их нужно упорядочить по убыванию и вывести в Edit! ...

Сортировка строк
Народ, тут проблемка небольшая. Судя по всему просто незнание теории... Пытаюсь сортировку сделать: void __fastcall TForm1::FormVP() ...

3
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
11.12.2011, 13:59
Массив сумм заведи. Заполни его. Потом сортируй, одновременно меняя строки в матрице
1
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
11.12.2011, 18:10  [ТС]
kzru_hunter, маленький пример можно?

Добавлено через 4 часа 9 минут
kzru_hunter, Вот что выщло
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
/*находим суму строки матрицы и результат закидуем в матрицу*/
for(i = 0; i < n; i++)
  {
    sum = 0;
    mas[i] = 0;
    for(j = 1; j < m; j += 2)
    {
      if(matr[i][j]<0)
      {
        sum += matr[i][j];
      }
    }
    mas[i] = sum;
  }
/*Сортируем строки матрицы*/
  for(i = 0; i < n; i++)
  {
    for(j = 0; j < m; j++)
    {
      c = matr[i][j];
      for(int h = i - 1; h >= 0 && mas[h] < mas[h + 1]; h--)
      {
        matr[h + 1][j] = matr[h][j];
        matr[h][j] = c;
      }
    }
  }
/*Смотрим результат*/
  for(i = 0; i < n; i++)
  {
    for(j = 0; j < m; j++)
    {
      printf(" %d ", matr[i][j]);
    }
    printf("\n");
  }
Вроде работает но немного не так сортирует строки, может кто то ошибку увидел, подскажите где, я все вроде пересмотрел но все ровно не так сортирует! заранее спасибо!!
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
11.12.2011, 19:59
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
        const int n = 5;
        const int m = 10;
        int matr[n][m];
 
        // ---- заполнение матрицы
        randomize();
        Memo1->Lines->Clear();
        Memo1->Lines->Add("Матрица до сортировки");
        for(int i = 0; i < n; i++)
        {
                String sLine = "";
                for(int j = 0; j < m; j++)
                {
                        matr[i][j] = random(41) - 10; // заполнение рандомными числами от -10 до 30
                        sLine += String(matr[i][j]) + " ";
                }
                Memo1->Lines->Add(sLine);
        }
 
        // ---- подсчет сумм
        Memo1->Lines->Add("");
        Memo1->Lines->Add("Суммы");
        int sum[n];
        for(int i = 0; i < n; i++)
        {
                sum[i] = 0;
                for(int j = 0; j < m; j += 2)
                {
                        if(matr[i][j] < 0)
                        {
                                sum[i] += matr[i][j];
                        }
                }
                Memo1->Lines->Add(sum[i]);
        }
 
        // ------ сортировка
        for(int i = 0; i < n; i++)
        {
                for (int j = i; j < n; j++)
                {
                        if (sum[i] < sum[j])
                        {
                                // меняем местами
                                for ( int x = 0; x < m; x++ )
                                {
                                        int t = matr[i][x];
                                        matr[i][x] = matr[j][x];
                                        matr[j][x] = t;
                                }
                                int t = sum[i];
                                sum[i] = sum[j];
                                sum[j] = t;
                        }
                }
        }
 
        Memo1->Lines->Add("");
        Memo1->Lines->Add("Матрица после сортировки");
        // --------вывод
        for(int i = 0; i < n; i++)
        {
                String sLine = "";
                for(int j = 0; j < m; j++)
                {
                        sLine += String(matr[i][j]) + " ";
                }
                sLine += ", сумма = " + String(sum[i]);
                Memo1->Lines->Add(sLine);
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2011, 19:59
Помогаю со студенческими работами здесь

Сортировка строк в Мемо
Понимаю что похожие темы были ну я так чуток и не допонял.... Суть проблемы вот вчем: Прога считает количество символов в тексте(в...

Сортировка строк в Мемо
Добро всем! :senor: Как текст находящийся в Мемо отсортировать адреса по алфавиту? Вот текст в Мемо: Дата: 26.11.2014 ...

Сортировка строк в порядке алфавита
Дана строка, состоящая из слов на английском языке, разделенных пробелами. Вывести на экран эти слова в порядке алфавита. - C++ builder ...

Сортировка строк в memo по датам
возникла проблемка, необходимо отсортировать строки в memo такого типа 23.12.2014;ручка;паркер, 12.6.1995;карандаш;паркер....только по...

Сортировка строк по столбцам Stringgrid
Помогите пожалуйста, нужно сортировать строки StringGrid по выбранным столбцам из combobox


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru