Imprimir o Resultado
Neste passo, melhoraremos o nosso programa de cálculo de permutação adicionando opções de saída mais detalhadas e formatação.
Vamos modificar o ficheiro permutations.c para melhorar a apresentação do resultado:
cd ~/project
nano permutations.c
Atualize o código com a impressão melhorada do resultado:
#include <stdio.h>
// Função para calcular o fatorial
unsigned long long factorial(int num) {
unsigned long long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// Função para calcular a permutação (nPr)
unsigned long long permutation(int n, int r) {
// Verificação de entrada inválida
if (r > n) {
printf("Erro: r não pode ser maior que n\n");
return 0;
}
// Calcular nPr usando a fórmula: n! / (n-r)!
return factorial(n) / factorial(n - r);
}
// Função para imprimir detalhes da permutação
void printPermutationDetails(int n, int r, unsigned long long result) {
printf("\n--- Detalhes do Cálculo da Permutação ---\n");
printf("Número total de itens (n): %d\n", n);
printf("Número de itens selecionados (r): %d\n", r);
printf("Cálculo: %d P %d = %d! / (%d - %d)!\n", n, r, n, n, r);
printf("Resultado: %llu diferentes arranjos possíveis\n", result);
printf("----------------------------------------\n");
}
int main() {
int n, r;
printf("Calculadora de Permutação (nPr)\n");
printf("Introduza o número total de itens (n): ");
scanf("%d", &n);
printf("Introduza o número de itens a serem selecionados (r): ");
scanf("%d", &r);
unsigned long long result = permutation(n, r);
if (result > 0) {
printPermutationDetails(n, r, result);
}
return 0;
}
Compile e execute o programa:
gcc permutations.c -o permutations
./permutations
Exemplo de saída:
Calculadora de Permutação (nPr)
Introduza o número total de itens (n): 5
Introduza o número de itens a serem selecionados (r): 3
--- Detalhes do Cálculo da Permutação ---
Número total de itens (n): 5
Número de itens selecionados (r): 3
Cálculo: 5 P 3 = 5! / (5 - 3)!
Resultado: 60 diferentes arranjos possíveis
----------------------------------------
Melhorias chave:
- Adicionada uma função dedicada
printPermutationDetails()
- Incluída saída mais informativa sobre o cálculo
- Explicação da fórmula de permutação e do resultado
- Interface de utilizador melhorada com um título e uma explicação detalhada.