Hola necesito ayuda urgente como puedo hacer este programa en C: Escriba un programa que liste todas las permutaciones de ABCDEF en las que A aparece antes que D.
Resulta que procedí a hacer el análisis del programa, pero no encuentro la forma de empezar a desarrollarlo, las entradas ya están pero no se como puedo empezar a hacer las permutaciones de las letras, cualquier aporte de como puedo ir desarrollándolo me serviría mucho, gracias
En google habrá muchos ejemplos de permutaciones en C.
Y para controlar la condición de que A debe ir antes que D, calcula todas las permutaciones y haz una función que compruebe si eso se cumple o no y utiliza solo las permutaciones que lo cumplan.
Para resolver problemas te aconsejo plantear primero el problema con los pasos que harías para serolverlo con un lapiz y un papel imitando tu pensamiento:
Pongo las letras en el papel.
ABCDEF
Pongo todas las combinaciones posibles 1 por 1.
ACBDEF
ADBCEF
AEBCDF
AFBCDE
ABDCEF
ABECDF
ABFBCD
......
Que estás haciendo?
Compara cada cadena con la original:
ABCDEF
ACBDEF
Intercambiaste el elemento con índice [2] por el elemento con índice [1].
En la siguiente cadena?
ABCDEF
ADBCEF
Intercambiaste la cadena anterior ACBDEF moviéndole el índice [3] por el índice [1]
En la siguiente cadena?
ABCDEF
AEBCDF
Intercambiaste la cadena anterior ADBCEF moviéndole el índice [4] por [1] AEBCDF
....
Ya encontraste un patron para parte del algoritmo. Si llamas al primer índice X = 2, solo tienes que cambiar la letra guardada en el indice [X] por la letra en el índice [1]. Puedes hacer una funcion a la qje le pases dos 2 numeros enteros y te devuelva un array con esas posiciones intercambiadas.
El bucle de momento sería:
int x = 2;
for (int i = 0; i < tamañoArray; ++i;
{
ArrayConLasLetras = FuncionCambioElementosArray(x, 1);
++x;
}
Te falta comprobar la posición de los elementos para saber si hacerle printf.
Te faltan permutaciones. Puedes ir comprobando paso por paso los resultados del programa e ir modificándolo paso a paso para que siga realizando otras permutaciones.
O seguir buscando "con el papel" el siguiente paso que deberías dar para sacar más permutaciones.
Cuando las tenga todas observa si encuentras una operación matemática para calcular todas las permutaciones.