#include <stdio.h> #include <string.h> #include <stdlib.h>
void permutaciones(char *conjunto, size_t card, size_t elem);
int main(void) { char conjunto[] = "cat"; size_t card = sizeof conjunto - 1; permutaciones(conjunto, card, 0); return EXIT_SUCCESS; }
void permutaciones(char *conjunto, size_t card, size_t elem) { if (card > 1){ int i; permutaciones(conjunto, card - 1, elem + 1); for (i = 1; i < card; i++){ char temp; temp = conjunto[elem + i]; memmove(conjunto + elem + 1, conjunto + elem, i); conjunto[elem] = temp; permutaciones(conjunto, card - 1, elem + 1); memmove(conjunto + elem, conjunto + elem + 1, i); conjunto[elem + i] = temp; } }else puts(conjunto); }
Soy nueve en esto de la programación y me pasaron este código y hay muchos elementos que no entiendo, necesito que me echeis un cable.
|