Forum Clubic

Fonction puissance en ANSI C - Heuu, je bloque

Salut, comment calculer une puissance en C???

J’ai essayé 2^3, mais le calcul me renvoie 1!!!

J’ai du passé à coté de quelque chose!

pow(2,3);

C’est ce que j’ai fais, mais il me semblait qu’on pouvait le faire directement, sans passer par math.h

Merci.

J’en ai jamais entendu parlé :??:

^ c’est le XOR bit à bit :slight_smile:

z = 1;
x = 2;
y = 3;
while (y–)
z *= x;

donne z = x^y (ici 2^3)

Sinon dans le cas particuliers des puissances de deux tu peux calculer z=2^y par :
z = (1 << y)

Je ne pense pas qu’il parle d’un point de vue algorithmique (connaissant son niveau) d’où le fait que je ne vois pas à quoi il fait allusion :??:

C’est gentil, je suis trés flatté :jap:

Effectivement, je ne cherche pas comment le faire de manière algorithmique, ça, c’est loin de me poser un soucis!!!

Par contre, NeqO a raison, j’ai confondu le ^ avec le symbole puissance :o [honte à moi]

Voila ce qu’il arrive quand on jongle trop souvent d’un langage à l’autre dans la même journée… Vivement les vacances qu’on stoppe un peu :smiley:

tu peutx utiliser une boucle pour calculer la puissance la voila
si tu veux calculer par exemple 21 a la puissance 3
" #include <stdio.h>
void main()
{
int puis,k;
for(puis=1,k=1;k<=3;k++)
puis=puis*21;
printf("21 a la puissance 3 est egal = %d\n",puis);
}
"

Merci, mais ce n’est pas la peine de faire remonter ce topic du fin fond du forum!

Je le répète une dernière fois, je ne cherche pas un algo pour calculer une puissance (je suis capable de le faire), mais je pensais qu’en C, un opérateur existait pour faire ce calcul de puissance, à la manière des caractères ‘+’, ‘-’, ‘*’, ‘/’ etc…

salut
peut etre j pas arriver a bien assimiler votre question,bon voici une autre methode qui calcule la puissance de deux nombre entrés par le clavier et concernant un operateur qui calcule la puissance je l’ai cherché dans pas mal des sites mais je pense qu’il n’existe pas
#include <stdio.h>
void main()
{
int puis,k,a,b;
printf(“entrer la valeur de a= “);
scanf(”%d”,&a);
printf(“entrer la valeur de b= “);
scanf(”%d”,&b);
for(puis=1,k=1;k<=b;k++)
puis=puis*a;
printf(”%d a la puissance %d est egal = %d\n",a,b,puis);
}
"