2
respostas

[Dúvida] Calculando a potência entre dois números

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

void potencia(int c, int d){ printf("Potencia: %d ^ %d = %1.f\n", c, d, pow(c, d));

}

int main(){ int a = 2; int b = 4;

potencia(a, b);

}

2 respostas

Ficou muito bom! Parabéns pelo aprendizado e fico agradecido por compartilhar seu código! Eu criei uma versão minha, ela recebe a base e o expoente por argumento de linha de comando.

No Linux se executa da seguinte maneira:

./executavel.out [base] [expoente]

um exemplo é:

./potencia.out 5 3
Potencia: 5 ^ 3 = 125

segue o código fonte:

#include<stdio.h> //printf()
#include <stdlib.h> //atoi()
#include <stdbool.h> //"true" e "false"
#include<math.h> //pow()

//declaração das funções
float potencia(int base, int expoente);
void mensagem_arg_invalidos();
int argumentos_validos(int argc); 

int main(int argc, char** argv){ 
  
  //verifica se os argumentos passados são validos
  if(!argumentos_validos(argc)) 
  { 
    mensagem_arg_invalidos(); 
    return 1;
  }
  
  //converte os argumetos (cadeia de char) em inteiros (int)
  // atoi(char c[]) : converte uma cadeia de caracteres em int 
  int base = atoi(argv[1]); 
  int expoente = atoi(argv[2]);

  //print no resultado!
  printf("Potencia: %d ^ %d = %1.f\n", base, expoente, potencia(base,expoente));

    return 0;
}

//implementação das funções

//retorna a potencia
float potencia(int base, int expoente)
{ return pow(base, expoente); }

//mensagem de erro para numero de args invalida
void mensagem_arg_invalidos()
{
  printf("numero de argumentos invalidos!\n");
  printf("o executavel deve receber 2 argumentos! NOTE:\n");
  printf("[programa] [base] [expoente]\n");
}

//confere se numero de args eh valido
//uso de operador ternario
int argumentos_validos(int argc) 
{ return (argc == 3) ? true : false; }

Bons estudos :)

OI Valmir, tudo bem?

É muito interessante ver como você aplicou os conceitos do curso, especialmente na criação de funções próprias. Parabéns pela iniciativa e pela clareza do código! Essa prática é fundamental para aprimorar as habilidades em programação. Continue assim e continue compartilhando seu progresso.

Obrigado e sucesso em seus estudos!

Um abraço.