компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > Программирование

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 16.12.2010, 21:14   #11
V.I.P. Пользователи
 
Аватар для L@nken
 
Регистрация: 01.09.2006
Сообщений: 3,315
По умолчанию

Писать код не буду, так как не где его проверить, да и Вам учиться всё таки необходимо, поэтому набросаю только алгоритм, а вы его уже сами оформите в исполняемый файл
Код:
//Значит так, первое у вас есть какая-то структура, с нее выделяем необходимое нам поле (это будет какая-то длинная строка),
//и передаём данную строку в функцию, которая и будет выполнять все действия. 

void Sort (char main_str, int len)
{
****//len - длина строки, вычислить её можно любым способом
****//Теперь необходимо выделить слова, осуществляеться это будет прямым перебором, 
****//готовые слова будем записывать в массив words
****
****char words [10][16]; //вроде так обьявляется, но точно не помню, давно не писал на С
****//при желании можете сделать динамический массив, в данном случае обьявляется массив на 10 слов, длиной 16 символов
****int j = 0;
****int i1 = 0;
****for (int i = 0; i < len; i++)
****{
********words[i1][j] = main_str[i];
********if (main_str[i] == ',')
********{
************if (main_str[i+1] == ',')
************{
****************if (main_str[i+2] == ',')
****************{
********************if(main_str[i+3] == '.')
********************{
************************i1++;
************************j = 0;
************************i = i + 3;
********************}
****************}
************}
********}****
********j++;
****}
****//И так Вы выделили слова, по идеи выше приведенный цикл должне работать :)
****//Теперь перейдём к сортировке
****int k = 0; // индекс наименьшего элемента
****char bufer[16]; //переменная для обмена
****for (int i = 0; i < 10; i++)
****{
********k = i;
********bufer = words[i][];
********for (int j = i+1; j < 10; j++) //цикл выбора наименьшего элемента
********{
************if (strcmp(words[j],bufer) < 0) //другими словами наш буфер больше какого-то другого слова
************{
****************k = j;
****************bufer = words[j];
************}
************//Меняем местами
************words[k] = words[i];
************words[i] = bufer;
********}********
****}
****//Теперь можете выводить массив words любым известным Вам способом****
}
По идеи это всё должно работать




L@nken вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
16.12.2010, 21:14
Техник
реклама
По умолчанию

Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 17:32. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2