Bonjour, j'ai un petit problème avec mon programme que je dois faire pour l'école : pour le case 2 si le numéro de l'étape entré au début est différent de 0 ainsi que pour le case 3 il me retourne 0 comme valeur ... Est ce que vous savez m'aidez ?
Voici le 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <cmath>
using namespace std;
int menu () ;
int cote (int etape) ;
float perim (int etape , float longueur) ;
float surface (int etape, float longueur) ;
int main()
{
    int N ;
    int c ;
    int compt =0 ;
    float L, R2, R3 ;
    int R1;
 
    do {
        cout << "Nombre d'"<<"\x82"<<"tapes ?"<<endl;
        cin >> N;
        cout << "Longueur du cot"<<"\x82"<<" ?"<<endl;
        cin >> L ;
        compt++ ;
} while ((N < 0 || L <= 0) && compt < 3 ) ;
    if (compt < 3) {
 
    c =  menu() ;
 
    switch (c) {
        case 1 :
            R1 = cote(N);
            cout <<" Le nombre de c"<<"\x93"<<"t"<<"\x82"<<" = "<<R1<<endl ;
            break ;
 
        case 2 :
            R2 = perim (N, L) ;
            cout <<" Le p"<<"\x82"<<"rim"<<"\x8A"<<"tre = "<<R2<<endl ;
            break;
 
        case 3 :
            R3 = surface (N, L) ;
            cout <<" La surface = "<<R3<<endl ;
            break;
        }
 
 
}
 
}
 
int menu () {
    int choix ;
    cout <<"Choississez une option pour le flocon de Koch :" <<endl ;
    cout <<"1 : calculer le nombre de c"<<"\x93"<<"t"<<"\x82"<<"s " <<endl ;
    cout <<"2 : calculer le p"<<"\x82"<<"rim"<<"\x8A"<<"tre  " <<endl ;
    cout <<"3 : calculer la surface" <<endl ;
    cin >> choix;
    return choix;
}
 
int cote (int etape) {
    int P = 1 ;
    int X ;
    int i ;
    if (etape == 0) {
            X = 3 ;
 
    }
    else {
        for(i=0; i<etape ; i++) {
            P = P * 4;
            }
        X = 3 * P ;
    }
        return X;
 
}
 
float perim (int etape , float longueur) {
    float P = 1, X ;
    int i ;
    if (etape == 0) {
            X = 3 * longueur ;
    }
    else {
            for(i=0; i<etape ; i++) {
                P = P * (3/4);
            }
                X = 3 * longueur * P;
 
            }
        return X;
}
float surface(int etape, float longueur){
    float P = 1, X ;
        int i ;
        if (etape == 0) {
            X = sqrt(3)/4 * longueur * longueur ;
        }
    else {
        for(i=0; i<etape ; i++) {
            P = P * (4/9);
        }
            X = sqrt(3)/4 * longueur * longueur * (1+1/3 * ((1-P)/ (1- 4/9))) ;
 
        }
        return X;
}