Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18

Вывести на экран все возможные перестановки введенных ползователем символов

11.01.2014, 13:44. Показов 4090. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С клавиатуры задается последовательность символов. Написать программу, которая выводит на экран все возможные перестановки введенных символов.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2014, 13:44
Ответы с готовыми решениями:

Вывести на экран все возможные перестановки введенных символов. Где ошибка?
С клавиатуры задается последовательность символов. Написать программу, которая выводит на экран все возможные перестановки введенных...

Выдать все возможные перестановки введенных символов
Проблема с типами. Программа должна выдавать все возможные перестановки введенных символов. Но напутал чтото с типами. Подскажите что...

Вывести все возможные перестановки символов в строке
Вводится строка, на вывод вывести все возможные перестановки этой строки. Например: вводим abc на вывод - acb, bac, cba...

11
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.01.2014, 13:59
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
#include <cstring>
 
void f(char*a);
int main()
{
    char str[]="vi na";
    f(str);
    puts(str);
}
void f(char*a)
{
    int l=strlen(a);    
for(int i=0;i<l;i+=2)
    {
        int t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
    }
}
может так ?
1
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18
11.01.2014, 14:24  [ТС]
Шас попробую

Добавлено через 17 минут
не работает
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.01.2014, 14:34
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <string>
#include <iostream>
 
int main()
{
    std::string s = "aba";
    std::sort(s.begin(), s.end());
    do {
        std::cout << s << '\n';
    } while(std::next_permutation(s.begin(), s.end()));
}
а так?
1
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18
11.01.2014, 14:42  [ТС]
о, спс))што зделать, штоб консоль сама не закривалась?

Добавлено через 5 минут
просто conio.h подключить?
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
11.01.2014, 14:43
C++
1
system("pause");
1
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
11.01.2014, 14:43
Цитата Сообщение от tolkin Посмотреть сообщение
штоб консоль сама не закривалась?
C++
1
2
system("pause");;
return 0;
1
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18
11.01.2014, 14:47  [ТС]
всьо, тепер норм)

Добавлено через 1 минуту
через conio. h тоже пашет

Добавлено через 1 минуту
а што здесь неправильно?хочу етот код розобрать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
#include <cstring>
 
void f(char*a);
int main()
{
    char str[]="vi na";
    f(str);
    puts(str);
}
void f(char*a)
{
    int l=strlen(a);    
for(int i=0;i<l;i+=2)
    {
        int t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
    }
}
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.01.2014, 14:58
tolkin, там прогамма работает правильно ,но не то находит что надо. Там меняются местами первый символ со вторым и третий с четвертым и так далее .Просто я сам ошибся с условием.
1
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18
11.01.2014, 15:00  [ТС]
ага, шас попробую исправить.
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
11.01.2014, 15:01
Пример из поста
Алгоритм перестановок
переделанный под строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string                  T_str;
typedef std::set<T_str::value_type>  T_dig_set;
//////////////////////////////////////////////////////////////////////////////////////
bool minimum_increasing_dig_swap(T_str  &s)
{
    bool  bool_res = false;
    if(s.size() <= 1) return bool_res;
    //Ищем, начиная с предпоследней, такую букву, справа от которой есть меньше нее.
    T_dig_set         tail_set;
    T_str::size_type  pos_L = s.size() - 1;
    do
    {
        tail_set = T_dig_set(s.begin() + --pos_L, s.end());
        bool_res = s[pos_L] != *tail_set.rbegin();    
    }while(   pos_L 
           && !bool_res);
 
    if(!bool_res)  return  bool_res;    
 
    //Ищем справа от s[pos_L] наименьшую букву, которая больше s[pos_L].    
    T_dig_set::const_iterator  dig_R_it  = tail_set.upper_bound(s[pos_L]);
    T_str::size_type           pos_R     = s.find(*dig_R_it, pos_L);
    //Переставляем буквы.
    std::swap(s[pos_L], s[pos_R]);
    //Сортируем хвост.
    std::sort(s.begin() + pos_L + 1, s.end());
    return  bool_res;    
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{    
    std::cout << "s = ";
    T_str s;
    std::cin>>s;
 
    int  counter = 0;
    while(minimum_increasing_dig_swap(s))
    {
        ++counter;
        std::cout << s
                  << std::endl;
    }
    if(!counter)
    {
        std::cout << "Such string doesn't exist."
                  << std::endl;
    }
    else
    {
        std::cout << "Total "
                  << counter
                  << " strings."
                  << std::endl;    
    }
    system("pause");
}
1
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 18
11.01.2014, 17:17  [ТС]
всем спасибо)буду розбирать

Добавлено через 2 часа 0 минут
sergei60, в прототипе нельзя писать имя переменной, по-моему...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
#include <cstring>
 
void f(char*a);
int main()
{
    char str[]="vi na";
    f(str);
    puts(str);
}
void f(char*a)
{
    int l=strlen(a);    
for(int i=0;i<l;i+=2)
    {
        int t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2014, 17:17
Помогаю со студенческими работами здесь

Все возможные варианты перестановки символов строки
Дана строка s, состоящая из n символ (n меньше 6) составить все возможные варианты перестановки этих символов (язык C)

Определить все возможные перестановки символов в данной строке
Добрый день, имеется рекурсивный код, задача которого определить все возможные перестановки символов в данной строке.void swap (char *x,...

Рекурсивная функция: все возможные перестановки символов строки
Дана строка с n элементами. Например abs. Надо выводить все возможные варианты например abs asb bas bsa sab sba. Надо...

Во множестве содержатся символы, выполнить все возможные перестановки этих символов
Во множестве содержатся символы, выполнить все возможные перестановки этих символов. Помогите сделать

Вывести все возможные перестановки букв
Ребенок играл с карточками, на которых написаны английские буквы. Он составлял слова нового языка. Каждое слово содержало все имеющиеся у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru