Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Neste documento, o autor apresenta um código em c que utiliza recursividade para realizar a soma de dois números. Ele explica o conceito básico de recursividade, onde uma função pode chamar a si mesma, e mostra como isso é implementado no código. Além disso, ele discute as variáveis e as chamadas da função, bem como a importância de ter uma condição de parada para evitar loops infinitos.
Tipologia: Notas de estudo
1 / 9
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Recursividade
Marcus Henrique [email protected]/user/marcaoIFCE
#include<stdio.h>#include<stdlib.h>int soma (int n1, int n2){ if (n1>n2) return 0; // Condição de parada para que a função não chame mais a si mesmoelse return n2 + soma(n1,n2-1); // A função entra em recursividade} int main (){ int result, n1, n2;printf("Digite o primeiro numero! \n");scanf("%d",&n1);printf("Digite o segundo numero! \n");scanf("%d",&n2);result=soma(n1,n2); //O retorno da função é recebido por resultprintf("\nA soma eh: %d", result);printf("\n\n");system("pause");return 0;}
^ Na função
main (principal)
existem 3 variáveis
inteiras:^
result, n1 e n
^ A variável
result^ receberá o retorno da função soma. Um detalhe muito importante é que a variável
n
deve receber um valor menor que o da
n2^ (Como
dito antes o código está bem simples). Na chamada da função
soma^ é passado com parâmetros
n1^ e^ n2. ...result=soma(n1,n2);...
^ Primeira chamada: ^ Exemplo:
n1 = 1^ e^ n2 = 2. int soma (int n1, int n2){ if (n1>n2) return 0;else return n2 + soma(n1,n2-1);} ^ Segunda chamada ^ n1 = 1 e n2 = 1; ^ Terceira chamada ^ n1=1 e n2=0 ^ Nesta chamada da função é atendido a condição deparada e, então, é retornado
0(zero)^ para a última
chamada e realizado uma soma.
1-chamadan1=1 e n2 =2Return n2+ soma(n1,n2-1);
2- chamadan1=1 e n2=1return n2 + soma(n1,n2-1)
3- chamadan1=1 e n2=0return 0
Retorna 0+ Retorna 1+ Retorna 2+