2015-03-18 2 views
-3

Я пытаюсь написать программу, которая попросит вас ввести четырехбуквенное слово. Затем вы будете отображать все возможные комбинации из четырех букв на основе данного слова. Например, вы ввели слово TEST. Тогда вы программа отобразит следующее: TSTE TTES и т.д. на основе моих исследований и немного прибегая к помощи я создал это:C++ next_permutation function

using namespace std; 
int main() 
std::string s = ""; 
std::sort(s.begin(), s.end()); 
do { 
    std::cout << "Please Enter any Letter" << '\n'; 
    std::cin >> s; 
    std::cout << " The Permutation is " << s <<'\n' << endl; 
} while(std::next_permutation(s.begin(), s.end 
} 

поэтому, когда я пытаюсь ввести четыре письма слова, его просто дисплей письмо и перестановка не происходят. Что я здесь делаю неправильно? PS Я все еще новичок и студент, изучающий C++, поэтому, пожалуйста, объясните это четко. TY :)

+0

Умм ... вы просите пользователя ввести слово на каждой итерации цикла. Вы должны переместить 'cout' и' cin' перед циклом и запросить у пользователя 4-буквенное слово, а не одну букву за раз. – Praetorian

ответ

1

std::cin >> s; принимает входные данные от пользователя. Учитывая то, что вы пытаетесь сделать, нет смысла делать это каждый раз в цикле. Переместите его за пределы цикла и выполните перестановки в цикле.

std::string s = ""; 
std::cout << "Please Enter any word" << '\n'; 
std::cin >> s; 
std::sort(s.begin(), s.end()); 
do { 
    std::cout << " The Permutation is " << s <<'\n' << endl; 
} while(std::next_permutation(s.begin(), s.end); 
+0

спасибо, что сделал трюк –

Смежные вопросы