Imprimir el Resultado
En este paso, mejoraremos nuestro programa de cálculo de permutaciones añadiendo opciones de salida más detalladas y formato.
Modifiquemos el archivo permutations.c para mejorar la presentación del resultado:
cd ~/project
nano permutations.c
Actualicemos el código con una impresión de resultados mejorada:
#include <stdio.h>
// Función para calcular el factorial
unsigned long long factorial(int num) {
unsigned long long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// Función para calcular la permutación (nPr)
unsigned long long permutation(int n, int r) {
// Comprobación de entrada inválida
if (r > n) {
printf("Error: r no puede ser mayor que n\n");
return 0;
}
// Cálculo de nPr usando la fórmula: n! / (n-r)!
return factorial(n) / factorial(n - r);
}
// Función para imprimir los detalles de la permutación
void printPermutationDetails(int n, int r, unsigned long long result) {
printf("\n--- Detalles del Cálculo de Permutaciones ---\n");
printf("Número total de elementos (n): %d\n", n);
printf("Número de elementos seleccionados (r): %d\n", r);
printf("Cálculo: %d P %d = %d! / (%d - %d)!\n", n, r, n, n, r);
printf("Resultado: %llu diferentes arreglos posibles\n", result);
printf("----------------------------------------\n");
}
int main() {
int n, r;
printf("Calculadora de Permutaciones (nPr)\n");
printf("Ingrese el número total de elementos (n): ");
scanf("%d", &n);
printf("Ingrese el número de elementos a seleccionar (r): ");
scanf("%d", &r);
unsigned long long result = permutation(n, r);
if (result > 0) {
printPermutationDetails(n, r, result);
}
return 0;
}
Compila y ejecuta el programa:
gcc permutations.c -o permutations
./permutations
Ejemplo de salida:
Calculadora de Permutaciones (nPr)
Ingrese el número total de elementos (n): 5
Ingrese el número de elementos a seleccionar (r): 3
--- Detalles del Cálculo de Permutaciones ---
Número total de elementos (n): 5
Número de elementos seleccionados (r): 3
Cálculo: 5 P 3 = 5! / (5 - 3)!
Resultado: 60 diferentes arreglos posibles
----------------------------------------
Mejoras clave:
- Se añadió una función
printPermutationDetails() dedicada.
- Se incluyó una salida más informativa sobre el cálculo.
- Se explicó la fórmula de permutación y el resultado.
- Se mejoró la interfaz de usuario con un título y una explicación detallada.