Salut à tous.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
double puissance(double x, int n);
main ()
{
    double x; int y;
    printf("Entrer l'entier relatif : ");scanf("%lf",&x);
    printf("\nEntrer l'exposant : ");scanf("%d",&y);
    printf("\n%.1lf",puissance (x,y));
    return ;
}
double puissance(double x, int n)
{
    int i,m;
    double res,y; res = 1;
    if(n>0){
            for (i=1;i<=n;i++){
            res = res*x;}
    }
    if (n=0){
        if (x=0){res =0;}
        if (x!=1){res = 1;}
        }
    if(n<0){
        m = -n;
        for (i=1;i<=m;i++){
            res = (double)1/res * (double)1/x;}
    }
    return res ;
}
Il marche bien pour n supérieur ou égal à 0 par contre pour les entiers négatifs ils renvoient toujours 1.

Quand dites-vous ? Avez vous des conseils ? (Notamment pour alléger l'écriture il paraît qu'on peut faire des boucles avec des "?" enfin des trucs rapides).