1
resposta

Erro no codigo em C

Faça um programa em C que leia dois números inteiros positivos (x e n) e apresente o resultado da potênciaI xn. Para isso, você deve implementar uma função recursiva para calcular xn, com as seguintes características:

xn = x * xn -1

x0 = 1 (x elevado a 0)

#include <stdio.h>

int main(){
    int pot(int n, int x);
    int n1, n2,resultado;
    printf("Informe dois numeros positivos ");
    scanf("%i", &n1);
    scanf("%i", &n2);
    resultado = pot(n1,n2);
}

    int pot(int n, int x){
        int resultado;
        if (n == 0){
        resultado = 1;
        } else{
            resultado = (x * pot(x, n-1));
        }
        return resultado;
    }
1 resposta

O erro estava na hora de chamar a função pot(), vc havia colocado 'pot(x, n-1)' sendo que na declaração da função a ordem das variaveis é 'pot(int n, int x)'

#include <stdio.h>

int pot(int n, int x);

int main(){

    int x, n,resultado;
    printf("Informe dois numeros positivos ");
    scanf("%d", &x);
    scanf("%d", &n);
    resultado = pot(n,x);
    printf("Resultado de  %d elevado a %d:  %d\n", x, n, resultado);
}

int pot(int n, int x){
    int resultado;

    if (n == 0){
        return 1;
    } else{
        return (x * pot(n-1, x));
    }
}