0

私はこのコードを持っていて、出力を並べ替えようとしていますが、

#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

手伝っていただけませんか?

どうすればできるのかわかりません。

4

0 に答える 0