Donc, en python, tout ce que je dois faire est
print(3**4)
Ce qui me donne 81
Comment puis-je faire cela en C? J'ai cherché un peu et dire la fonction exp()
, mais je ne sais pas comment l'utiliser, merci d'avance
Vous avez besoin de pow();
fonction de math.h
entête.
syntaxe
#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
Ici, x est la base et y est l'exposant. le résultat est x^y
.
tilisation
pow(2,4);
result is 2^4 = 16. //this is math notation only
// In c ^ is a bitwise operator
Et assurez-vous d'inclure math.h
_ pour éviter d’avertir ("incompatible implicit declaration of built in function 'pow'
").
Lier la bibliothèque mathématique en utilisant -lm
pendant la compilation. Cela dépend de votre environnement.
Par exemple, si vous utilisez Windows, cela n’est pas obligatoire, mais il s’agit de systèmes UNIX.
#include <math.h>
printf ("%d", (int) pow (3, 4));
Il n'y a pas d'opérateur pour un tel usage en C, mais une famille de fonctions:
double pow (double base , double exponent);
float powf (float base , float exponent);
long double powl (long double base, long double exponent);
Notez que les deux derniers ne sont qu'une partie de la norme C depuis C99.
Si vous recevez un avertissement tel que:
"déclaration implicite incompatible de la fonction intégrée 'pow'"
C'est parce que tu as oublié #include <math.h>
.
vous pouvez utiliser pow(base, exponent)
de #include <math.h>
ou créez le vôtre:
int myPow(int x,int n)
{
int i; /* Variable used in loop counter */
int number = 1;
for (i = 0; i < n; ++i)
number *= x;
return(number);
}
Pour une autre approche, notez que toutes les fonctions de bibliothèque standard fonctionnent avec des types à virgule flottante. Vous pouvez implémenter une fonction de type entier comme ceci:
unsigned power(unsigned base, unsigned degree)
{
unsigned result = 1;
unsigned term = base;
while (degree)
{
if (degree & 1)
result *= term;
term *= term;
degree = degree >> 1;
}
return result;
}
Cela fait effectivement des multiples répétés, mais réduit un peu en utilisant la représentation de bits. Ceci est très efficace pour les puissances faibles.
utilisez simplement pow(a,b)
, qui est exactement 3**4
en python
En réalité, en C, vous n’avez pas d’opérateur électrique. Vous devrez exécuter manuellement une boucle pour obtenir le résultat. Même la fonction exp ne fonctionne que de cette manière. Mais si vous devez utiliser cette fonction, incluez l'en-tête suivant
#include <math.h>
alors vous pouvez utiliser pow ().