Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 11:51   #1
kura007
 
Регистрация: 23.03.2013
Сообщений: 5
По умолчанию анаграммы. неполноценный код

По заданному с клавиатуры слову построить все его анаграммы, т.е. слова (возможно, бес-смысленное), состоящее из всех букв исходного слова, но расположенных в произвольном порядке. Например «бук» и «куб» - анаграммы. В качестве разделителя при выводе исполь-зовать символ подчеркивания(«_» ). (Для простоты можно вводить слово, не содержащее повторяющиеся буквы.). Допустимые символы – прописные русские буквы.



Код:
#include <stdio.h>
#include <string.h>
#include <locale.h>
 
void _strrev(char*  src, int len) {
    char*  dst = src + len - 1;
    char   ch;
    while( dst != src ) {
          ch   = *dst;
         *dst = *src;
         *src = ch;
        ++src;
        --dst;
    }
}
 
int  generator(char* src, int len, int cnt) {
     int  k, i;
     char ch;
     if(cnt <= 1 || len < 2)
         return 0;
     if(cnt == len)
         printf("%s\n", src);
     for(k = 0; k < len-1; k++, cnt--) {
          for(i = 0; i < cnt; i++) {
              ch        = *((src)+i);
              *((src)+i) = *((src)+k);
              *((src)+k) = ch;
              if(*((src)+i) == *((src)+k))
                  _strrev(src, len);
              printf("%s\n", src);
         }
      }
      return generator(src, len, cnt);
}
 
 
 int main (int argc, char *argv[])
 {
int main(void);
  {
	    setlocale(LC_CTYPE,"Russian");
        char str[] = "КУБ", str1[] = "КЛУБА";
        int  len     = strlen(str);
        generator( str, len, len);
 
        puts("-");
 
        len    = strlen(str1);
        generator( str1, len, len);
 
        getchar();
        return 0;
  }
 }
программа выполняется но не совсем точно. выводит не все анаграммы для слова клуба. помогите найти ошибку
kura007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анаграммы(c/c++) finder11 Помощь студентам 0 17.01.2013 12:33
Задача «Анаграммы» - в предложении найти все слова, являющиеся анаграммами fivax Помощь студентам 2 21.10.2011 14:20
Анаграммы ( B Visual Basic ) denste Помощь студентам 0 06.05.2010 23:10
Анаграммы Паскалька^^ Помощь студентам 14 25.10.2009 17:41
Помогите (фразы анаграммы) Leopold666 Помощь студентам 5 09.08.2007 18:22