Ir ao conteúdo
  • Cadastre-se

Ajuda com program em C


Posts recomendados

Cálculo de expoente positivo, nada mais é do que, multiplicar o valor da base pela quantidade de vezes do expoente.

Exemplo:

3^3 = 3 * 3 * 3 = 27
No caso de expoente negativo, basta inverter a base para que o expoente se torne positivo.

Exemplo:

3^(-3) = (1/3)^3 = (1/3) * (1/3) * (1/3) = (1/27)
Link para o comentário
Compartilhar em outros sites

Eu fiz a função mas não está funcionando direito. Quando o expoente é positivo retorna o valor certo, mas quando o expoente é negativo retorna sempre  o valor 1, independente do valor do expoente.

 

float potencia(float X, int Y){

      float P=1;

      int i, T=0;

      

      if(Y>=0){

        for(i=1; i<=Y; i++)

        P=P*X;

      }

      return P;

       

  if(Y<0){

 

   T= T+(Y*(-1));

        for(i=1; i<=T; i++)

        P=P*X;

      }

      return 1/P;

}

Link para o comentário
Compartilhar em outros sites

Faltou fazer o tratamento para expoente de valor zero e de valor um:

float potencia(float X, int Y){    float soma = 1.0;    int base = X;    int i = 0;    if ( Y == 0 )        soma = 1.0;    else        if ( Y == 1 )            soma = X;        else            if ( Y >= 2 )                for ( i = 0; i < Y; i++ )                    soma *= base;            else                if ( Y < 0 )                    for ( i = Y; i < 0; i++ )                        soma *= ( (float) 1 / base); // Conversão do resultado da divisão para 'float', antes de executar a multiplicação    return soma;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...