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

declarando var. de iteração dentro do FOR

Olá,

No exercício da potência de dois numeros, fiquei numa dúvida...:

pq quando declaro a variável de iteração dentro do laço FOR dá zero no return, na execução do cód.???!!

float Potencia(float, int);

main()
{
    puts("Resposta: \n");

    float a = Potencia(3, 3);

    printf("%f", a);


}

float Potencia(float a, int b) // base e a potencia 
{
    float result;

    for(int i = 1, result = 1; i <= b; i++) // AQUI!
    {
        result = a * result;         
    }

    return result;    
}
2 respostas
solução!

Olá Josiel, tudo bem ? Espero que sim.

Chequei a documentação e não encontrei nenhum empecilho, mas aparente não devemos declarar a variável i dentro do for quando também inicializarmos outra variável.

float Potencia(float a, int b) // base e a potencia 
{
    float result;
    int i;

    for(i = 1, result = 1; i <= b; i++) // AQUI!
    {
        printf("result %f\ni %d\nb %d\n\n", result, i, b);
        result = a * result;         
    }

    return result;    
}

Retirei a declaração e o problema sumiu, outro caminho é retirar a inicialização do results do for.

float Potencia(float a, int b) // base e a potencia 
{
    float result = 1;

    for(int i = 1; i <= b; i++) // AQUI!
    {
        printf("result %f\ni %d\nb %d\n\n", result, i, b);
        result = a * result;         
    }

    return result;    
}

Se eu descobrir algum outro ponto, compartilho aqui com você.

Bons estudos.

Muito bom. Valeu prof!!!

Na vdd, o problema era que o 'result' tava sendo declarado dentro do escopo do FOR.

Declarando fora resolveu msm.

;) Grato.