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
Alles anzeigen
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
- #include <stdio.h>
- #include <iostream>
- using namespace std;
- int main (int argc, char *argv[])
- {
- void print (const int *v, const int size)
- {
- if (v !0 = 0)
- {
- for (int i = 0; i<size; i++)
- {
- printf ("%4d", v[i]);
- }
- printf ("n");
- }
- }
- void permute (int *v, const int start, const int n)
- {
- if (start == n-1)
- {
- print (v,n);
- }
- else {
- for (int i = start; i <n; i++)
- {
- int tmp = v[i];
- v[i]=v[start];
- v[start]=tmp;
- permute (v, start+1, n);
- v[start]=v[i];
- v[i] = tmp;
- }
- }
- }
- main ()
- {
- int v[] = {1,2,3};
- permute (v,0, sizeof(v)/sizeof(int));
- }
- return 0;
- }