Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Fatorial


BreakDown

Pergunta

//TRIÂNGULO DE PASCAL
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
int FatorialN (int n){
    if (n==0 || n==1)
        return n;
    int i;  
    i = n - 1;   
    for (i; i!=1; i--)  
        n = n * i;  
    return n;  
}
int FatorialR (int r){
    if (r==0 || r==1)
        return 1;
    int i;  
    i = r - 1;   
    for (i; i!=1; i--)  
        r = r * i;  
    return r;  
}
int FatorialA (int a){
    if (a==0 || a==1)
        return a;
    int i;  
    i = a - 1;   
    for (i; i!=1; i--)  
        a = a * i;  
    return a;  
}
int main ()
{  int n, n1, r=0, r1, a1, a, c;
    printf("Informe o valor de n: ");
    scanf("\n%d", &n);
    while (n >= r) {
          a = n - r;
          n1 = FatorialN(n);
          r1 = FatorialR(r);
          a1 = FatorialA(a);
          c = n1/(r1*a1);
          printf("%d ", c);
          r++;}
     system("pause");}

Esse código está rodando no compilador "DEV C++" sem erros, mas quando informo algum valor, ele informa que parou de funcionar com essa mensagem:

Assinatura do problema:

Nome do Evento de Problema: APPCRASH

Nome do Aplicativo: Untitled2.exe

Versão do Aplicativo: 0.0.0.0

Carimbo de Data/Hora do Aplicativo: 4da74ddb

Nome do Módulo de Falhas: Untitled2.exe

Versão do Módulo de Falhas: 0.0.0.0

Carimbo de Data/Hora do Módulo de Falhas: 4da74ddb

Código de Exceção: c0000094

Deslocamento de Exceção: 000014fe

Versão do sistema operacional: 6.1.7600.2.0.0.256.1

Identificação da Localidade: 1046

Informações Adicionais 1: 0a9e

Informações Adicionais 2: 0a9e372d3b4ad19135b953a78882e789

Informações Adicionais 3: 0a9e

Informações Adicionais 4: 0a9e372d3b4ad19135b953a78882e789

Leia nossa declaração de privacidade online:

http://go.microsoft.com/fwlink/?linkid=104...mp;clcid=0x0416

Se a declaração de privacidade online não estiver disponível, leia nossa declaração de privacidade offline:

C:\Windows\system32\pt-BR\erofflps.txt

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

na ultima passagem, o a vale 0 (a = n - r, sendo q n = r).

olha q no fatorialA, você faz:

int FatorialA (int a){
    if (a==0 || a==1)
        return a; //<--- olhe aqui[/code]

assim ele vai retornar 0 quando a for 0.

assim, a1 fica valendo 0, o q causa o erro de divisao por 0, por isso para de funcionar.

não sei exatamente o q você quer fazer, mas se não me engano, o fatorial de 0 é 1 e não 0.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...