Programme C puissance d'un entier

xkaiser88 Messages postés 11 Statut Membre -  
malek_ Messages postés 2 Statut Membre -
Bonsoir,
J'ai écrit un programme en C qui calcule la puissance d'un entier. Mais à la fin de l'exécution le programme m'affiche l'entier saisi sans calculer sa puissance. Merci de me corriger le programme:

#include<stdio.h>
void main () {
int i;
int p;
int q;
int a;
printf("saisir l'entier");
scanf("%d",&a);
printf("saisir la puissance");
scanf("%d",&p);
if (p=0)
q=1;

else

q=1;
{
for (i=1; i<=p ; i++);
q=q*a;
}
printf("%d\n",q);
system ("pause");
}
Configuration: Windows Vista / Internet Explorer 7.0

13 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonsoir,
    Tu peux simplifier l'algorithme.
    En fait, juste besoin de mettre la variable q à 1 et d'un simple while. Même pas besoin de considérer le cas où l'exposant est nul.
    Par exemple :
    #include <stdio.h>
    
    int main(void) {
        int a;
        int p;
        int q;
        printf("saisir l'entier : ");
        fflush(stdout);
        scanf("%d",&a);
    
        printf("saisir la puissance : ");
        fflush(stdout);
        scanf("%d",&p);
    
        q=1;
        while(p--)
            q*=a;
    
        printf("%d\n",res);
        return 0;
    }
    

    Si tu as des questions sur le reste du code, n'hésite pas.
    Cdlt,
    12
    1. malek_ Messages postés 2 Statut Membre 1
       
      #include<stdio.h>
      #include<math.h>
      int puiss (int x,int y )
      {
      int q ; int i=0;
      if(y==0)
      q=1;
      else
      {
      q=1;
      while (i<y)
      {
      q=q*x;
      i++;
      }
      }
      return q;
      }
      int main()
      {
      int a;
      int p; int waw;
      printf("****Bonjour malek****");
      printf("comment cv pas !");



      printf("\n saisir l'entier x :\n ");
      scanf("%d",&a);
      printf("\n saisir la puissance p : \n ");
      scanf("%d",&p);
      /*calcule de puissance*/
      waw=puiss(a,p);
      printf("\n la puissance de %d ** %d est : %d \n",&a,&p,waw);
      return 0;
      getch();


      }
      1