![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.12.2012
Сообщений: 25
|
![]()
Здравствуйте. у меня задание: Дан массив строк. Вывести на экран все слова, являющиеся анаграммами. Для поиска анаграмм нужно произвести следующие действия:
отсортировать буквы всех слов по алфавиту; реализовать функцию сравнения строк; отсортировать слова с сортированными буквами по алфавиту. Для этого нужно создать массив индексов и при сортировке переставлять элементы в массиве индексов, не изменяя массив слов; просмотреть массив строк в порядке, указанном в массиве индексов, повторяющиеся слова напечатать в первоначальном виде. Слова-анаграммы печатаются в строчку (таких слов может быть два и более). И вот я написала программу: #include "stdio.h" void sort(char* str, int n) { int t=0, p, f; char m; while(t<n-1) { f=n-1; for(p=n-1; p>t; p--) if(str[p]<str[p-1]) { m=str[p]; str[p]=str[p-1]; str[p-1]=m; f=p; } #ifdef DEBUG_SORT printf("massive - %s, f=%i\n", str, f); #endif t=f; } } int check_sort(char* str, int n) { int i, f=1; for(i=0; i<n-1; i++) if(str[i]>str[i+1]) f=0; return f; } int sravnenie(char* str, char* str2) { int i=0,g=0; while(str[i]&&str2[i]) { if (str[i]>str2[i]) {g= 1; break;} else if (str[i]<str2[i]) {g=-1; break;} i++; } return(g); //возращает: 0 - если строки равны 1 - если первая больше второй -1 - если первая меньше второй } int main() { char a[11][10] = {"наладка", "лесовоз", "теплица", "тальянка", "акробат", "петлица", "солевоз", "работка", "катальня", "отработка", "ладанка"}; int i; for(i=0; i<11; i++) { printf("test %i\n", i); printf("massive - %s\n", a[i]); sort(a[i], 10); printf("sort - %s\n", a[i]); if(check_sort(a[i], 10)) printf("test passed\n\n"); else printf("test failed\n\n"); } int sravnenie; Только это метод сортировки пузырьком. А мне нужно сделать методом половинного деления. Помогите пожалуйста кто знает. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм сортировки | freshcot | Помощь студентам | 0 | 16.06.2012 21:10 |
Алгоритм поразрядной сортировки | Bubel | Общие вопросы C/C++ | 1 | 05.12.2011 13:39 |
Алгоритм сортировки вычерпыванием | F.Ury | Помощь студентам | 1 | 02.12.2011 02:26 |
Алгоритм сортировки | BarsRus | Помощь студентам | 3 | 03.06.2010 16:11 |
Алгоритм сортировки по категориям | retail_ret | PHP | 8 | 11.08.2009 00:06 |