Multiplication successive de puissance en C..

Résolu/Fermé
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 - 14 nov. 2012 à 18:15
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 - 15 nov. 2012 à 15:18
Bonjour tout le monde.

Voilà, depuis hier je me prend la tete sur un programme sur lequel je ne trouve aucunes solutions.

L'ennoncé est pourtant clair :

Calculer par multiplications successives la puissance N d'un nombre X. N et X sont entrés au
clavier et doivent être positifs.

Voilà comment j'essaye de faire moi

#include<stdio.h>
#include<math.h>
#include<conio-bis.h>

int main ()
{
int N,i,ok;
int X, puissance=0;

printf("Entrez la base de la puissance : ");
scanf("%d",&X);
printf("\nEntrez l'exposant de la puissance : ");
scanf("%d",&N);
do
{
ok=0;
if ((X<0)||(N<0))
{
ok=1;
}
} while (ok==1);


for (i=0;i<=N+1;i++)
{
puissance=pow(X,1)*pow(X,N--);
getch();
printf("%d\n",puissance);
}

printf("\nLe resultat est de %d\n",puissance);





getch(); getch();
return 0;
}


Premiere partie du programme, je verifie si les nombres entrées sont positifs.
Apres j'essaye de trouver une formule pour que je puisse faire une multiplication successive du genre 2^3 * 2^2 * 2^1 = 64. Mais depuis deux jours aucunes formules ne marche..

Qui pourrait essayer de m'aider ? Essayer le programme là sur son pc et me dire qu'est ce qui cloche, qu'est ce qui ne va pas ?

Bonne soirée à tous !

2 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
14 nov. 2012 à 18:37
if ((X<0)||(N<0))
Je me trompe peut-être .. je lis : SI ((X est plus petit que 0) OU (N est plus petit que 0)) .. dans ce cas "OK" est égal à 1
Et ensuite tu dis "TANT QUE (OK est égal à 1)
?? C'est normal
2
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 1
14 nov. 2012 à 19:36
Cela veut dire que si ok = 1 on ne sort pas de la boucle et on reste dedans.. ^^
0