dúvida em recursividade [RESOLVIDO]

1. dúvida em recursividade [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/06/2011 - 14:02h

ola pessoal, nao estou entendendo o porque da saída deste programa simples em C, alguem poderia me explicar como estão acontecendo essas chamadas resursivas?

#include <stdio.h>
#include <stdlib.h>

void funcao(int a) {
if(a) {
funcao(a-1);
funcao(a-1);
printf("%d ", a);
}
}

main() {
funcao(4);
printf("\n");
}

//saída: 1 1 2 1 1 2 3 1 1 2 1 1 2 3 4


  


2. MELHOR RESPOSTA

Fernando A. Vita
fernandoavita

(usa Debian)

Enviado em 23/06/2011 - 16:12h

realmente isso é um pouco chato de ver. mas faz esta edição no programa que tu consegue ver o passo a passo:

#include <stdio.h>

void funcao(int f, int a) {
if(a) {
printf("chamada da funcao %d com a= %d\n",f,a );
funcao(1 , a-1);
funcao(2 , a-1);
printf("\t funcao %d - imprime %d\n",f,a);
}
}

main() {
funcao( 0 , 4);
printf("\n");
}

3. Re: dúvida em recursividade [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/06/2011 - 17:57h

desse modo ficou bem claro, vlw pela ajuda.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts