Permutation - problem mit code

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Permutation - problem mit code

    Ich habe eine Aufgabe zu loesen. Hier ist text: Schreiben Sie ein Programm, das eine Zahl einliest und alle möglichen Permutationen der in der Zahl vorkommenden Ziffern ausgibt. (Sie können davon ausgehen, dass jede Ziffer nur einmal eingegeben wird.)
    z.B. Eingabe: 123
    Ausgabe: 123 132 213 231 312 321

    Und ich kann nicht Fehler gefunden. Kann jemand mir helfen mit Code unten? Danke




    Quellcode

    1. #include <stdio.h>
    2. #include <iostream>
    3. using namespace std;
    4. int main (int argc, char *argv[])
    5. {
    6. void print (const int *v, const int size)
    7. {
    8. if (v !0 = 0)
    9. {
    10. for (int i = 0; i<size; i++)
    11. {
    12. printf ("%4d", v[i]);
    13. }
    14. printf ("n");
    15. }
    16. }
    17. void permute (int *v, const int start, const int n)
    18. {
    19. if (start == n-1)
    20. {
    21. print (v,n);
    22. }
    23. else {
    24. for (int i = start; i <n; i++)
    25. {
    26. int tmp = v[i];
    27. v[i]=v[start];
    28. v[start]=tmp;
    29. permute (v, start+1, n);
    30. v[start]=v[i];
    31. v[i] = tmp;
    32. }
    33. }
    34. }
    35. main ()
    36. {
    37. int v[] = {1,2,3};
    38. permute (v,0, sizeof(v)/sizeof(int));
    39. }
    40. return 0;
    41. }
    Alles anzeigen
  • Du kannst ruhig "Du" sagen :)

    Quellcode

    1. #include <stdio.h>
    2. void print (const int *v, const int size)
    3. {
    4. if (v != NULL)
    5. {
    6. for (int i = 0; i<size; i++)
    7. {
    8. printf ("%4d", v[i]);
    9. }
    10. printf ("\n");
    11. }
    12. }
    13. void permute (int *v, const int start, const int n)
    14. {
    15. if (start == n-1)
    16. {
    17. print (v,n);
    18. }
    19. else
    20. {
    21. for (int i = start; i <n; i++)
    22. {
    23. int tmp = v[i];
    24. v[i]=v[start];
    25. v[start]=tmp;
    26. permute (v, start+1, n);
    27. v[start]=v[i];
    28. v[i] = tmp;
    29. }
    30. }
    31. }
    32. int main (int argc, char *argv[])
    33. {
    34. int v[] = {1,2,3};
    35. permute (v,0, sizeof(v)/sizeof(int));
    36. return 0;
    37. }
    Alles anzeigen