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

С клавиатуры задается последовательность символов. Написать программу, которая выводит на экран все возможные перестановки введенных символов.
#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;
}
}
7 ответов

которая выводит на экран
По-моему, ваша программа ничего не выводит


в курсе)


#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 ;
}


Croessmah, а есть проще способ, поттому шо ишо не учил std:: ?


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 и строчка } while ( std::next_permutation( str.begin() , str.end() ) ); говорит о использовании функции next_permutation всего лишь из этой библиотеки.


спосибо) извени, што открил две одинаковие теми..я тепер, понял.