|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.12.2011, 23:41 | #1 |
Пользователь
Регистрация: 30.03.2011
Сообщений: 36
|
как написать вывод
в общем нужна программа упорядочивающая массив строк в порядке возрастания их длины методом сортировки простым выбором.
я ее написал она сортирует длины строк по возрастанию,но как сделать так чтобы она выводила мне мой массив самих строк в том порядке в каком были отсортированы их длины.Если запустите то поймете меня. #include "stdafx.h" #include "iostream" int _tmain(int argc, _TCHAR* argv[]) { int n, i,k,x,j; char strmass[999][999]; printf ("input kol-vo strok\n"); scanf ("%i", &n); printf ("input stroki\n"); for (i=0; i<n; i++) {scanf ("%s", &strmass[i]);} int *kol= new int [n];/////////////////////////создаем динамический массив и в него все кидаем for (i=0; i<n; i++) { kol[i]=strlen(strmass[i]); } for (i=0; i<n; i++) {printf("\n%i\n",kol[i]);} ////////////////////сортировка выбором////////////////////////// for( i=0; i<n; i++) {k=i; x=kol[i]; for( j=i+1; j <n; j++) if ( kol[j] < x ) { k=j; x=kol[j]; } kol[k] = kol[i]; kol[i] = x; } ///////////////////////конец сортировки/////////////// for (i=0; i<n; i++) {printf("\n\nrezultat%i\n",kol[i]);} //////////////////////проверка сортировки прошла замечательно............... //////////как написать вывод........ for (i=0; i<n; i++) { } //////////как написать вывод........ system("pause"); return 0; } |
27.12.2011, 04:22 | #2 |
Пользователь
Регистрация: 18.11.2009
Сообщений: 39
|
что-то ты тут перемудрил, сначала создал динамический целочисленный массив, записал в него длины строк, потом отсортировал массив ДЛИН, а не строк. Тут всё проще, нужна всего одна переменная int в которую надо записать длину наименьшей строки и поочерёдно сравнивать её с длинами остальных строк, если находишь меньшую строку - меняешь местами. Вывод:
Код:
|
27.12.2011, 04:22 | #3 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Основная идея такая: упорядочивать массив строк также как и массив длин одновременно. Для этого я использовал функцию копирования строки strcpy. Можно еще, наверное, как-нибудь через указатели это сделать, но я что не хочу придумывать - работает же.
Код:
|
27.12.2011, 07:02 | #4 |
Пользователь
Регистрация: 18.11.2009
Сообщений: 39
|
Исходя из задания, как мне кажется, лучше такой вариант:
Код:
Последний раз редактировалось Mahin; 27.12.2011 в 07:32. |
27.12.2011, 12:37 | #5 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
http://ru.wikipedia.org/wiki/%D0%9F%...B2%D0%BA%D0%B8 |
|
27.12.2011, 19:57 | #6 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
|
27.12.2011, 22:16 | #7 |
Пользователь
Регистрация: 18.11.2009
Сообщений: 39
|
про использование\не использование string нет ни слова, но даже без оного нет смысла в создании нового массива (сиречь, загрузки памяти) kol, если нужно просто отсортировать массив по длине
P.S. если так уж надо связать строку с длиной, легче будет создать структуру, включающую строку и длину этой строки, вычисляемую на этапе ввода.а из этой структуры строить массив, который можно сортировать по длине |
27.12.2011, 23:56 | #8 |
Пользователь
Регистрация: 30.03.2011
Сообщений: 36
|
Огромное всем спасибо, все заработало.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
посоветуйте как лучше написать написать бд | diakon2 | Помощь студентам | 7 | 10.11.2010 14:17 |
вывод как в с# | MeTeOpA | Общие вопросы Delphi | 2 | 25.05.2010 11:38 |
Как организовать вывод из бд в таблицу 5*7 ? | xxxsas | PHP | 7 | 17.05.2010 22:45 |
как написать код на вывод оценки в тестирующей проге Флеонова | KaufMaNN | Помощь студентам | 0 | 31.05.2008 07:39 |
как вы думаете можно с помощью delphi написать online игру ну к примеру как muonline | 0pex | Свободное общение | 9 | 28.06.2007 14:20 |