Форум программистов, компьютерный форум CyberForum.ru

Вывести на экран все возможные перестановки введенных символов. Где ошибка? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
tolkin
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 17
11.01.2014, 18:23     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #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;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 18:23     Вывести на экран все возможные перестановки введенных символов. Где ошибка?
Посмотрите здесь:

C++ Все возможные варианты перестановки символов строки
Массивы. Вычислить по формуле и вывести на экран все возможные комбинации сумм чисел C++
C++ Все возможные перестановки элементов заданного массива
C++ Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
Вывести на экран все возможные перестановки введенных ползователем символов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TyomaR
 Аватар для TyomaR
24 / 24 / 1
Регистрация: 05.08.2013
Сообщений: 20
11.01.2014, 18:37     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #2
Цитата Сообщение от tolkin Посмотреть сообщение
которая выводит на экран
По-моему, ваша программа ничего не выводит
tolkin
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 17
11.01.2014, 18:44  [ТС]     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #3
в курсе)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
11.01.2014, 18:45     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
int main () {
  std::string str ;
  std::cin >> str ;
  std::cout << "START:\n";
  std::sort ( str.begin() , str.end() ) ;
  do {
    std::cout << str << '\n';
  } while ( std::next_permutation( str.begin() , str.end() ) );
  std::cout << "END" << std::endl ;
}
tolkin
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 17
11.01.2014, 18:50  [ТС]     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #5
Croessmah, а есть проще способ, поттому шо ишо не учил std:: ?
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
11.01.2014, 22:37     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #6
tolkin, вы не могли не проходить std:: Это тема о пространстве имен,и если вы проходили iostream то должны знать ,что когда вы ее используете ,то необходимо использовать следующую директиву пространства имен,чтобы определения в iostream были доступны в программе: using namespace std; Это называется директивой using. Так вот ,директиву using можно опустить и записать код например следующим образом: std::cout<< ,std::>>cin , std:: endl;
Директива using namespace std; означает,что ты можешь применять имена,определнные в пространстве имен std ,без префикса std:: Эта директива using делает доступными все имена в пространстве имен std.
using std::cout; // делает доступным cout
using std::endl ; //делает доступным endl
using std::cin; //делает доступным cin
Я почему так подробно пытаюсь разжевать . Ты две темы открыл одинаковые. эту и эту Вывести на экран все возможные перестановки введенных ползователем символов кажется так не следует делать. Начал в одной теме вопрос ,там его и доведи до конца Я в своем коде поленился сделать ввод символьной строки ,а Croessmah предоставил краткий ,предельно простой код. с использованием библиотеки #include <algorithm>
и строчка } while ( std::next_permutation( str.begin() , str.end() ) ); говорит о использовании функции next_permutation всего лишь из этой библиотеки.
tolkin
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 17
11.01.2014, 22:42  [ТС]     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #7
спосибо) извени, што открил две одинаковие теми..

Добавлено через 2 минуты
я тепер, понял.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 22:45     Вывести на экран все возможные перестановки введенных символов. Где ошибка?
Еще ссылки по теме:

Рекурсия. Вывести на экран все перестановки чисел от 1 до n в лексикографическом порядке. C++
C++ Вывести все возможные перестановки слов в предложении
C++ Рекурсивная функция: все возможные перестановки символов строки

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

Или воспользуйтесь поиском по форуму:
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
11.01.2014, 22:45     Вывести на экран все возможные перестановки введенных символов. Где ошибка? #8
Вывести на экран все возможные перестановки введенных ползователем символов Я сам учусь ,ты тоже извини.
Yandex
Объявления
11.01.2014, 22:45     Вывести на экран все возможные перестановки введенных символов. Где ошибка?
Ответ Создать тему
Опции темы

Текущее время: 05:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru