私はこのコードを持っていて、出力を並べ替えようとしていますが、
#include <iostream>
#include <string.h>
using namespace std;
/* Prototipo de función */
void Permutaciones(char *, int l=0);
char *cadena[200];
int m=0;
int main() {
char palabra[13];
cin>>palabra;
Permutaciones(palabra);
cout<<cadena[18];
return 0;
}
void Permutaciones(char * cad, int l) {
char c; /* variable auxiliar para intercambio */
int i, j; /* variables para bucles */
int n = strlen(cad);
for(i = 0; i < n-l; i++) {
if(n-l > 2){
Permutaciones(cad, l+1);
}
else {
cadena[m]=cad;
cout<<m<<endl;
m++;
}
/* Intercambio de posiciones */
c = cad[l];
cad[l] = cad[l+i+1];
cad[l+i+1] = c;
if(l+i == n-1) {
for(j = l; j < n; j++){
cad[j] = cad[j+1];
}
cad[n] = 0;
}
}
}
文字 (カデナ) のグローバル配列を作成するつもりですが、機能しません。
たとえば、ユーザーが bca を書き込んでから、プログラムが次のように出力します。
bca
bac
cba
cab
abc
acb
しかし、プログラムの印刷をソートする必要があります。たとえば、次のようになります。
abc
acb
bac
bca
cab
cba
手伝っていただけませんか?
どうすればできるのかわかりません。