Guest Ádamo Postado Outubro 27, 2005 Denunciar Share Postado Outubro 27, 2005 Bom dia!Estou com uma dúvida.... o que essa função faz exatamente?int oquesou(int a, int { int c,d,s; if(b==1) return (a); c = b-1; d = oquesou(a,c); s = d+a; return(s); }Obrigado galera! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Outubro 27, 2005 Denunciar Share Postado Outubro 27, 2005 Bom dia!Estou com uma dúvida.... o que essa função faz exatamente?int oquesou(int a, int { int c,d,s; if(b==1) return (a); c = b-1; d = oquesou(a,c); s = d+a; return(s); }Obrigado galera! Só para consertar... saiu com um smileint oquesou(int a, int b ) { int c,d,s; if(b==1) return (a); c = b-1; d = oquesou(a,c); s = d+a; return(s); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Outubro 27, 2005 Denunciar Share Postado Outubro 27, 2005 Ela multiplica dois números. E, utilize a tag CODE quando for postar um código (aí não acontece o lance do smiley):#include <stdio.h> #include <stdlib.h> int oquesou(int a, int b) { int c,d,s; if(b==1) return (a); c = b-1; d = oquesou(a,c); s = d+a; return(s); } int main() { printf("%i\n", oquesou(5, 20)); printf("%i\n", oquesou(6, 10)); printf("%i\n", oquesou(9, 5)); system("pause"); }Veja os resultados do teste acima.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Adamo Postado Outubro 27, 2005 Denunciar Share Postado Outubro 27, 2005 Obrigado!!Mas ele não deveria entrar num loop infinito? Não entendi muito bem como funciona.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rockbilly Postado Outubro 27, 2005 Denunciar Share Postado Outubro 27, 2005 Oi colega,Bom, vou tentar explicar e se eu estiver errado na lógica, por favor, me corrijam.Dado os valores de a=5 e b=5, temos um IF:- Se B for igual a 1 retorne ao valor de A e finalize.if(b==1) return (a); - Senão, C será igual 4, pois 5-1 = 4. Então D pegará os valores de A e C e multiplicaria e acharia 20. c = b-1; d = oquesou(a,c); - Então variável S somaria o valor de A e D (20 + 5 = 25) e retornaria ao S como final da execução. s = d+a; return(s); Bom, espero ter ajudado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Ádamo
Bom dia!
Estou com uma dúvida.... o que essa função faz exatamente?
int oquesou(int a, int
{
int c,d,s;
if(b==1) return (a);
c = b-1;
d = oquesou(a,c);
s = d+a;
return(s);
}
Obrigado galera!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.