Форум программистов, компьютерный форум CyberForum.ru

Сортировать в СтрингГрид по двум столбцам - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нарисовать при помощи компонента Chart http://www.cyberforum.ru/cpp-beginners/thread1190405.html
Надо при помощи компонента Chart нарисовать Получается сделать только пол фигуры for (int i=0; i<=100; i++) { x=i; y=sqrt(10000-x*x); plot1->Points->AddXY(x, y);
C++ Определить номера строк матрицы R[M, N], хотя бы один элемент которых равен С Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d. Закрыто. Дубль во Фрилансе http://www.cyberforum.ru/cpp-beginners/thread1190402.html
Выделение предложений содержащих все слова С++ C++
Доброго времени суток. Прошу помощи в решении следующей задачи на С++: Указываем путь к файлу в котором содержится текст. Далее вводим запросы (слова через пробел завершая ввод каждого запроса нажатием энтера). По запросу программа выводит на экран все предложения в каждое из которых входят все слова запроса.
C++ Поиск групп букв, обрамленных цифрами
Ввести строку, в которую могут входить только цифры и буквы. Распечатать те группы букв, в которых буква А встречается не менее двух раз. (Группа букв - это последовательность букв, обрамленная цифрами.)
C++ Найти произведение цифр заданного четырехзначного числа http://www.cyberforum.ru/cpp-beginners/thread1190395.html
Найти произведение цифр заданного четырехзначного числа. (c++)
C++ Обработка исключения // ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <stdio.h>//На эти три библиотеки можно не обращать внимания, я всегда #include <math.h>//их пишу на всякий случай, подробнее

Показать сообщение отдельно
spectrum988
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
27.05.2014, 22:03     Сортировать в СтрингГрид по двум столбцам
Приветствую всех участников форума.
У меня имеется StringGrid в первом столбце находятся текстовые данные во втором числовые.
Нужно отсортировать по возрастанию данные таблицы причем меняется местами должны два столбца.

Вот моя проба,но здесь я пробовал просто отсортировать 2 столбец.Программа компилируется но при нажатии на кнопку форма с StringGrid не появляется,а выбивает ошибку.
Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
int n=StringGrid1->RowCount-1;
int *a,r;
a=new int[n];
for(i=0; i<=n;i++)
 a[i]=StrToInt(StringGrid1->Cells[2][i]);
for (i = 0; i <n-1;i++)
 for (j = i+1; j <n;j++)
  if (a[i] > a[j])
   {
   r = a[i];
   a[i] = a[j];
   a[j] = r;
   }
for (int i=0; i<StringGrid1->RowCount-1; i++)StringGrid1->Cells[2][i]=IntToStr(a[i]);
}
Посоветуйте пожалуйста может какой другой алгоритм на основе этого.

Добавлено через 1 час 6 минут
Немного переделанный метод,но плохо сортирует.
C++
1
2
3
4
5
6
7
8
9
10
11
int n=StringGrid1->RowCount-2;
AnsiString r;
for (i=1;i<n-1;i++)
 for (j=i+1;j<n;j++)
  if (StringGrid1->Cells[1][i]>StringGrid1->Cells[1][j])
   {
   r=StringGrid1->Cells[1][i];
   StringGrid1->Cells[1][i]=StringGrid1->Cells[1][j];
   StringGrid1->Cells[1][j]=r;
   }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru