#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.
¿Qué parte son las que no entiendes?
Lo contenido en for() si me pudieras y diciendo que se hace en cada linea de código me ayudaría mucho.
https://www.programarya.com/Cursos/C++/Ciclos/Ciclo-For
Hombre, hay que decir que no es un código sencillo para quien está empezando.
Tepuedo explicar qué hacen las sentencias, cómo funcionan los elementos de C++, y lo que quieras.
Pero el algoritmo en sí, mejor que lo veas tú.
Es evidente que es un algoritmo recursivo para sacar las permutaciones de un array.
Si dudas en lo que ahce alguna sentencia en sí, pregunta.
Cita de: ivancea96 en 8 Octubre 2016, 14:27 PM
Hombre, hay que decir que no es un código sencillo para quien está empezando.
Tepuedo explicar qué hacen las sentencias, cómo funcionan los elementos de C++, y lo que quieras.
Pero el algoritmo en sí, mejor que lo veas tú.
Es evidente que es un algoritmo recursivo para sacar las permutaciones de un array.
Si dudas en lo que ahce alguna sentencia en sí, pregunta.
Naaa lo que quiere es que le hagan la tarea (que ya esta hecha).
Mira lo que me descoloca de verdad es "elem" no se que valores tiene ni cual es su función en todo momento.
Casi sería mejor preguntarle al que lo hizo: https://elrincondelc.com/foros/viewtopic.php?t=13729 (https://elrincondelc.com/foros/viewtopic.php?t=13729)
Y si no lo hizo él, sabrá su funcionamiento exacto.
De todos modos, en ese post da algo de información acerca del algoritmo, aunque sea escasa.