Um erro na aula de hoje

Um erro na aula de hoje

por Francisco Reverbel -
Número de respostas: 2
No final da aula de hoje eu coloquei na lousa um programa que deveria ler um número inteiro não negativo n e imprimir os coeficientes da expansão de (a + b)n. O programa que estava na lousa era este:
 
int main()
{ 
    int n, i; 

    scanf("%d", &n); 
    for (i = 0; i <= n; i++) 
        printf("%d\n", coef_bin(n-i, i)); 
    return 0; 
}
Logo depois da aula um aluno, que tinha digitado esse programa num notebook, me mostrou que o programa não funcionava.

Qual é o erro do programa acima?
Em resposta à Francisco Reverbel

Re: Um erro na aula de hoje

por ARTUR SCAVONE -

Se foi digitado tal como está aí, faltam a função coef_bin e a inclusão da biblioteca stdio.h. De resto, parece estar correto.

Em resposta à Francisco Reverbel

Re: Um erro na aula de hoje

por Francisco Reverbel -

A chamada a coef_bin dentro do printf está errada... Devia ser coef_bin(n, i) em vez de coef_bin(n-i, i).

Notem que a diferença n-i já é calculada pela chamada coef_bin(n, i), que devolve o fatorial de n dividido pelo produto fatorial(i) * fatorial(n-i). Essa diferença não deve ser passada como parâmetro para coef_bin no lugar do n.

Peço desculpas pela confusão. Quem copiou a aula, por favor faça a correção no seu caderno.