Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Função recursiva


sacofritoxd

Pergunta

Fala pessoal.. então tot endo problemas pra resolver esse exercicio.. como não manjo muito(lê-se nd) de funçao recursiva.. queria a ajuda de vocês nesse exercicio aqui

- Escreva um funçao recursiva pot(i,j), que aceite dois argumentos inteiros positivos e retorna i elevado a j. Por exemplo pot(2,3) = 8. Use a seguinte definiçao

pot(i,j)= i*pot(i, j-1)

o q eu já fiz e n deu nd certo foi isso.. se algm puder me ajuda onde to errando..imagino q seja varios erros de sintaxe...

Obrigado

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

     int bla(int i, int j) 
     {
       if(j == 0 )
         return 1;
       else    
        return i*pot(i, j-1);
     }

int main() {
    int i, j;
    int pote, n;
    
    printf("Digite o valor da base : ");
    scanf("%d", &i);
    
    printf("Digite o valor do expoente : ");
    scanf("%d", &j);
    
    pote = bla(n);
     
    printf("\n\n%d elevado a %d = %d ", i,j, );
    
    
    getche();
    
    
    return 0;
    
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá

Funções recursivas são funções que chamam a si próprias. Este é o principal ponto.

Veja, no seu código, que a função "bla" não chama a si mesmo, mas a "pot", que nem está declarada. Se você mudar o nome da função "bla" para "pot", terá a função recursiva.

Esteja atento para, na chamada da função "pot" em main, passar dois valores como parâmetro, no caso, a base e o expoente. Também atente para o printf do fim, onde falta dizer a terceira variável utilizada na saída (no caso, "pote").

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá colega,

Bem, não sei qual erro está gerando, mas persebi que #include <math.h: deve ser #include <math.h>.

Outro ponto é que para chamar a função bla(), você tem que passar 2 valores na função e aqui pote = bla(n); você está passando apenas 1. Creio que nessa etapa você deve escrever pote = bla(i,j); .

Se atente também no que RSalvador informa acima.

Abraço,

Link para o comentário
Compartilhar em outros sites

  • 0

bom sim.. vlw pelas dicas
mas agr o código está assim

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

     int pot(int i, int j) 
     { [b]// ERRO AKI[/b]
       if(j == 0 )
         return 1;
       else    
        return i*pot(i, j-1);
     }

int main() {
    int i;//base
    int j;//expoente
    int pote, n;
    
    printf("Digite o valor da base : ");
    scanf("%d", &i);
    
    printf("Digite o valor do expoente : ");
    scanf("%d", &j);
    
    pote = pot(n);
     
    printf("\n\n%d elevado a %d = %d ", i,j, pote);
    
    
    getche();
    
    
    return 0;
aaaaaaaaah isso ai q tava faltando... o main ta assim
int main() {
    int i;//base
    int j;//expoente
    int pote;
    
    printf("Digite o valor da base : ");
    scanf("%d", &i);
    
    printf("Digite o valor do expoente : ");
    scanf("%d", &j);
    
    pote = pot(i,j);
     
    printf("\n\n%d elevado a %d = %d ", i,j, pote);
    
    
    getche();
    
    
    return 0;

agr funcionou... vlw pessoas ^^

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...