Bonjour

je developpe un prog de conversion francs->euros et euros->francs il fonctionne mais je pense que mon code est sale.
Ce qui me derange c'est l'imbrication des 3 switchs : le but c'est que si lors de l'affichage du menu principale l'utilisateur se trompe trois fois de suite, le programme quitte automatiquement.

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include<stdio.h>
#include<windows.h>
 
void calcul()
{
    double a = 0;
    double b =0;
    char ta = 0;
    int z = 0;
 
    printf("entrez votre valeur en franc\n");
    scanf("%lf",&a);
    b=a/6.55957;
    printf("%0g F vaut %lf euro(s)\n",a,b);
    printf("saisir c pour continuer\n");
    scanf("%s",&ta);
 
    while(ta!='c')
    {
        z++;
        printf("erreur de saisie\n");
        printf("saisir c pour continuer\n");
        scanf("%s",&ta);
 
        if(z==2)
        {
            ta='c';
            printf("vous aller etre rediriger vers le menu principal");
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
        }
    }
    main();
}
 
void calcul2()
{
    double a = 0;
    double b =0;
    char ta = 0;
    int z=0;
 
    printf("entrez votre valeur en euro\n");
    scanf("%lf",&a);
    b=a*6.55957;
    printf("%0g euro(s) vaut %lf F\n",a,b);
    printf("saisir c pour continuer\n");
    scanf("%s",&ta);
 
    while(ta!='c')
    {
        z++;
        printf("erreur de saisie\n");
        printf("saisir c pour continuer\n");
        scanf("%s",&ta);
 
        if(z==2)
        {
            ta='c';
            printf("vous aller etre rediriger vers le menu principal");
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
            printf(".");
            Sleep(1000);
        }
    }
    main();
}
 
int main()
{
    char to=0;
    int y= 0;
 
    system("cls");
    printf("Bienvenue dans le programme conversion monnaitaire\n");
    printf("conversion franc->euro saisir : f\n");
    printf("conversion euro->franc saisir : e\n");
    printf("quitter le programme          : q\n");
    scanf("%s", &to);
 
    switch(to)
    {
        case 'f':calcul();
        break;
        case 'e':calcul2();
        break;
        case 'q':
        case 'Q':return 0;
        default :printf("erreur de saisie\n");
                 scanf("%s", &to);
                 switch(to)
                    {
                        case 'f':calcul();
                        break;
                        case 'e':calcul2();
                        break;
                        case 'q':
                        case 'Q':return 0;
                        default :printf("erreur de saisie\n");
                                 scanf("%s", &to);
                                 switch(to)
                                 {
                                    case 'f':calcul();
                                    break;
                                    case 'e':calcul2();
                                    break;
                                    case 'q':
                                    case 'Q':return 0;
                                    default :printf("trop erreur de saisie\n");
                                             printf("le programme va quitter automatiquement");
                                             printf(".");
                                             Sleep(1000);
                                             printf(".");
                                             Sleep(1000);
                                             printf(".");
                                             Sleep(1000);
                                             printf(".");
                                             Sleep(1000);
                                             printf(".");
                                             Sleep(1000);
                                             return 0;
                                   break;
                                 }
                       break;
                }
        break;
    }
    return 0;
}
auriez vous une autre alternative a cette imbrication.

En outre si vous avez des idees pour améliorer le code a d'autre niveau n'hésitez pas et si vous avez des idees d'ajoue d'autre fonction nhésitez pas non plus.

merci