全排列问题可以使用 头文件<algorithm> 中的 next_permutation(a.start,a.end)函数。
但是需要注意这个函数在使用前需要先对 数组做升序排列( 可以使用<algorithm>中的sort(a.start,a.end) )否则只会输出比该序列大的序列。
如果有更大的数 next_permutation()会返回true,否则返回false。
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; int main(int argc, char *argv[]) { char arr[6]; scanf("%s",arr); int len = strlen(arr); sort(arr,arr+len); do{ printf("%s ",arr); }while(next_permutation(arr,arr+len)); return 0; }