Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Mr Nobody



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

#include <string.h>
#include <stdio.h>
 
#define MAX_LENGTH 4
 
void permutation(const char* src, int len)
{
    char buffer[MAX_LENGTH + 1];
    char head;
    int  idx;
 
    head = src[0];
 
    for(idx = 1; idx <= len; idx++)
        buffer[idx] = src[idx];
 
    printf("  %s\n", src);
 
    for(idx = 1; idx < len - 1; idx++)
    {
        buffer[idx - 1] = buffer[idx];
        buffer[idx] = head;
 
        printf("  %s\n", buffer);
    }
}
 
void left_shift(char buffer[], int len)
{
    char head;
    int  idx;
 
    head = buffer[0];
 
    for(idx = 1; idx < len; idx++)
        buffer[idx - 1] = buffer[idx];
 
    buffer[len - 1] = head;
}
 
void right_shift(char buffer[], int len)
{
    char last;
    int  idx;
 
    last = buffer[len - 1];
 
    for(idx = len - 1; idx > 0; idx--)
        buffer[idx] = buffer[idx - 1];
 
    buffer[0] = last;
}
 
int main()
{
    char str[MAX_LENGTH + 1],
         ptr[MAX_LENGTH + 1];
    int  idx, len;
 
    printf("Enter word for permutation\n"
             "Max characters in this word %d  ", MAX_LENGTH);
    scanf("%s", str);
    fflush(stdin);
 
    len = strlen(str);
 
    printf("\nPermutated words\n\n");
 
    strcpy(ptr, str);
    permutation(ptr, len);
    for(idx = 1; idx < len; idx++)
    {
        left_shift(ptr, len);
        permutation(ptr, len);
    }
 
    strcpy(ptr, str);
    permutation(ptr, len);
    for(idx = 1; idx < len; idx++)
    {
        right_shift(ptr, len);
        permutation(ptr, len);
    }
 
    return 0;
}

Всего записей: 350 | Зарегистр. 19-09-2007 | Отправлено: 08:29 12-11-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru