Ja, das sieht echt clever aus, vor allem die imponierende for-Schleife. Allerdings funktioniert es irgendwie nicht richtig. Da mein asuro die stdio.h nicht richtig anwendet habe ich versucht, das Programm anzupassen:
	Code:
	#include "asuro-probot.h"
#include "asuro-probot.c"
//#include <stdio.h>
//#include <string.h>
#define DIGITS "1234567890ABCDEF"
int print_perm (unsigned int N, unsigned int n0)
{
    char *l, letters[] = DIGITS;
    int j, digit[N];
    unsigned int n = n0;
    unsigned int i;
    
    // n0 in faktorielle Darstellung umwandeln
    for (i = 1; i <= N; i++)
    {
        digit[i-1] = n % i;
        n /= i;
			//while(!(UCSRA & 0x20));
			//UDR = digit[i-1]+'0';
    }
		//SerWrite("\r\n\n",3);
    if (n)
        return 0;
    // n0-te Permutation ausdrucken
    //printf ("#%d: ", n0 + 1);
      PrintInt(n0+1);
      SerWrite(": ",2);
    for (i = N-1; i >= 0; i--)
    {
        for (j = -1, l = letters - 1; j < digit[i]; j += *++l != ' ');
        //printf ("%c", *l);
			while(!(UCSRA & 0x20)); // Warten bis USART fertig ist
			//UDR = *l; // Wert an Adresse l senden
			UDR = *l+'0'; // Wert an Adresse l als Ascii-Zeichen senden
			//UDR = i+'0'; // i als Ascii-Zeichen senden
        // Gedruckte Zeichen aus Liste entfernen
        *l = ' ';
    }
    //printf ("\n");
 		SerWrite("\r\n",2); // neue Zeile
    return 1;
}
int main (void)
{
    unsigned int n=0, N=3;
/*    printf ("\nAnzahl Zeichen: ");
    scanf ("%u", &N);
    printf ("\nPermutation Nr. (0 fuer alle): ");
    scanf ("%u", &n);
    if (N == 0 || N > strlen (DIGITS))
    {
        printf ("Ungueltige Eingabe: Anzahl Zeichen in 1..%d\n",
                strlen (DIGITS));
        return 1;
    }
*/
 		SerWrite("\r\n\n",3); // neue Zeile
    if (n)
        print_perm (N, n-1);
    else
        while (print_perm (N, n++));
        
	 while(1);
    return 0;
}
 Die Ausgabe:
	Code:
	1    : 123R 6Eƈ "¤    "×"  ˆ Cø (usw....)
 Liegts an mir oder am Programm?
Gruß
mic
[Edit]
Die Lösung sollte doch so aussehen:
Beispiel mit N = 3, n = 0
#1: 123
#2: 132
...
#720: 098
						
					
Lesezeichen