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

[Sugestão] [Resposta] Função potencia

Como 2^(3) = 8 e 2x2x2 = 8. Então a^(b) == a multiplicado b vezes

#include <stdio.h>

int potencia(int a2, int  b2){
    int c = b2;  //so para nao perder o valor da variavel
    int aux = 1; //armazenar o valor
    while (b2 > 0){
        aux *= a2;
        b2--;
    }
    return printf("%d elevado a %d = %d\n", a2, c, aux);
}

int main(){
    int a = 2;
    int b = 3;
    
    potencia(a, b);
}
2 respostas
solução!

Olá João!

Obrigado por compartilhar seu código conosco.

Gostaria de fazer uma pequena sugestão de melhoria. Em vez de usar a função printf dentro da função potência, você poderia retornar apenas o valor da potência calculada e deixar a exibição para a função main. Dessa forma, sua função ficaria mais flexível, permitindo que o resultado seja utilizado de diferentes maneiras.

Por exemplo:

#include <stdio.h>

int potencia(int a, int b){
    int aux = 1;
    while (b > 0){
        aux *= a;
        b--;
    }
    return aux;
}

int main(){
    int a = 2;
    int b = 3;
    
    int resultado = potencia(a, b);
    printf("%d elevado a %d = %d\n", a, b, resultado);
    
    return 0;
}

Dessa forma, o resultado da potência é calculado na função potencia e armazenado na variável resultado dentro da função main. Em seguida, o resultado é exibido utilizando a função printf.

Bons estudos!

Interessante, mas entre esses 2 códigos há uma diferença de performance? No caso devo fazer funções que apenas têm printf se as funções forem void? Outra dúvida, o return 0; é apenas para informar á máquina que o código chegou ao fim e deve ser finalizado ali, ou tem outra finalidade?