Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Alguem consegue enxergar o que esta errado?

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

int main(){
    void potencia(int a, int b){
        int resultado = a;
            for(int i = 0; i < b; i++){
            resultado = resultado * a;
        }
        printf("O resultado é %d", resultado);
    }
}
3 respostas

Olá, Daniel! Tudo bem?

O problema em seu código está relacionado à função potencia. Ela está sendo definida dentro da função main, o que não é permitido em C. Para corrigir isso, você pode definir a função potencia fora da função main, antes de sua declaração. Além disso, é necessário inicializar a variável resultado com 1.

Ficaria assim:

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

void potencia(int a, int b){
    int resultado = 1;
    for(int i = 0; i < b; i++){
        resultado = resultado * a;
    }
    printf("O resultado é %d", resultado);
}

int main(){
//Seu código aqui. Exemplo:
    potencia(2, 4);
}

Qualquer dúvida, estamos à disposição.

Espero ter ajudado e bons estudos!

solução!

Olá, Daniel,

Você só está usando a biblioteca stdio.h, pode excluir a math.h. Também pode fazer a função potência retornar o valor calculado, que é um inteiro e imprimir o resultado na função main. É uma boa prática de programação colocar o return 0 antes do final da função mais, indicando ao sistema operacional que ocorreu tudo bem na execução do teu programa. Ficaria assim:

#include <stdio.h>

int potencia(int a, int b){

int resultado = 1;

for(int i = 0; i < b; i++){

resultado = resultado * a;

}

return resultado; // devolve o valor da potência para a função main.

}

int main(void){

int a = 2; // seria melhor ler estes dois valores com scanf

int b = 3;

print("Valor da potência: %d", potencia(a, b)); // chama a função potencia e escreve o resultado devolvido

return 0;

}

Espero ter ajudado. Abraço