Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Fatorial de um determinado número no Unix usando C?
Este programa C calcula o fatorial de um número inserido pelo usuário e lida com possíveis erros como entrada negativa e transbordamento. Ele foi projetado para compilar e executar um ambiente semelhante ao Unix (Linux, MacOS).


`` `c
#include
#include
#include // para llong_max

longa longa fatorial (int n) {
if (n <0) {
fprintf (stderr, "Erro:o fatorial não é definido para números negativos. \ n");
saída (1); // Sair com um código de erro
}

if (n ==0) {
retornar 1;
}

Longo resultado longo =1;
for (int i =1; i <=n; i ++) {
if (llong_max /resultado fprintf (stderr, "Erro:o fatorial excede o máximo valor longo longo. \ n");
saída (1);
}
resultado *=i;
}
resultado de retorno;
}

int main () {
int num;

printf ("Digite um número inteiro não negativo:");
if (scanf ("%d", &num)! =1) {
fprintf (stderr, "erro:entrada inválida. \ n");
retornar 1; // Sair com um código de erro
}

longo fato longo =fatorial (num);

printf ("Fatorial de %d =%lld \ n", num, fato);
retornar 0;
}
`` `

Para compilar e executar este código:

1. Salvar: Salve o código como um arquivo `.c` (por exemplo,` fatorial.c`).
2. compilar: Abra um terminal e use um compilador C (como o GCC) para compilar o código:
`` `BASH
gcc fatorial.c -o fatorial
`` `
3. Run: Execute o programa compilado:
`` `BASH
./fatorial
`` `
O programa solicitará que você insira um número.


Melhorias e explicações:

* Manuseio de erro: O código inclui verificações para:
* Entrada negativa: Ele lida explicitamente à entrada negativa, que não é definida para fatoriais.
* Overflow: Ele evita o transbordamento potencial, verificando se a próxima multiplicação exceder o valor máximo que um número inteiro 'longo' pode manter (`llong_max`). O uso de `Long 'fornece um intervalo maior que` int` ou `long'.
* entrada inválida: Ele verifica se o `scanf` leu com sucesso um número inteiro.

* `Long Long` Tipo de dados: O uso de `Long Long` fornece um intervalo maior para o cálculo fatorial, permitindo calcular fatoriais de números maiores antes de encontrar o transbordamento. No entanto, mesmo "longos" tem limites. Os fatoriais crescem extremamente rapidamente.

* Mensagens de erro claro: As mensagens de erro informam o usuário sobre o problema específico encontrado.

* Códigos de saída: O programa usa códigos de saída apropriados (0 para sucesso, 1 para erros), que é uma boa prática para programas que podem ser chamados de outros scripts ou programas.


Lembre -se de que as fatoriais crescem incrivelmente rápidas. Até o `longo de longa duração 'transborda para entradas relativamente pequenas (por exemplo, 21!). Para fatoriais arbitrariamente grandes, você precisaria usar uma biblioteca aritmética de precisão arbitrária especializada.

Anterior :

Próximo :
  Os artigos relacionados
·Tutorial em Unix ZFS 
·O Unix faz parte do sistema operacional? 
·Como criar um novo arquivo no Unix 
·O que é um comando para exibir todas as variáveis ​​d…
·O que cada Nível de Execução no Linux faz? 
·Como verificar na realização dos trabalhos em segundo…
·Qual é o significado do Unix em termos de computador? 
·Como alterar a senha Unix Root depois de ter expirado 
·Qual comando você usaria para criar um arquivo de text…
·Qual é o comando UNIX mais rude ou mais engraçado? 
  Artigos em destaque
·Como redimensionar e -mail Fotos 
·Como remover Assistente Remoto 
·Linux Informações Memória Processo 
·Como o Windows 7 usa um VHD ao criar backup do volume? 
·Debian Ferramentas portáteis 
·Como alterar meu Logon Wallpaper Windows usando Diretiv…
·Como manualmente sincronização Hora no Windows 
·Como adicionar um atalho para a barra de tarefas 
·Unix é menos estável que MS Windows? 
·Como reparar um Registro corrompido no XP 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados