
A função fatorial(int n) pode ser um bom exemplo de uma função recursiva:
#include <stdio.h>
int fat(int n)
{
int ret;
if (n)
return n*fat(n-1)
else return 1;
}
void main()
{
int n;
printf("\n\nDigite um valor para n: ");
scanf("%d", &n);
printf("\nO fatorial de %d e' %d", n, fat(n));
}
Há certos algoritmos que são mais eficientes quando feitos de maneira recursiva, mas a recursividade é algo a ser evitado sempre que possível, pois, se usada incorretamente, tende a consumir muita memória e ser lenta. Lembre-se que memória é consumida cada vez que o computador faz uma chamada a uma função. Com funções recursivas a memória do computador pode se esgotar rapidamente.
Perguntas para a lista do Curso de C