Bonjour

J'ai un problème dans une fonction calcul en C.
A priori c'est assez simple mais je trourne en rond et je n'arrive pas a comprendre pourquoi ça ne marche pas.

Voici le problème:
Je pars d'un tableau 5x5 cases remplis par des +,- et =.
Il y a donc en tout 9 variables que j'appelle (A,B,C,D,E,F,G,H,I). Le joueur au moment de la saisie doit entrer 3 valeurs les autres qui sont inconnues sont mises a -1.
Ma fonction saisie et affichage fonctionne mais le problème réside dans la fonction calcul car voici les équations: C=A+B; G=A+D; H=B+E; F=D+E; I=C+F; I=C+H.

il y a donc 6 inconnues en tout et il faut les trouver j'ai fait pas mal d'essai mais ils se sont tous soldés par un échec

voici la première:
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
int calcul (int A, int B, int C, int D, int E, int F, int G, int H, int I
){	
	if (A==-1){ A=0;
             while (A < 10)  { A++;
        if (B==-1){ B=0;
             while (B < 10)  { B++;
	if (C==-1){ C=0;
             while (C < 10)  { C++;
        if (D==-1){D=0;
             while (D < 10)  { D++;
	if (E==-1){ E=0;
             while (E < 10)  { E++;
        if (F==-1){F=0;
             while (F < 10)  { F++;
	if (G==-1){ G=0;
             while (G < 10)  { G++;
        if (H==-1){H=0;
             while (H < 10)  { H++;
	if (I==-1){ I=0;
             while (I < 10)  { I++;
C=A+B;
G=A+D;
H=B+E;
F=D+E;
I=C+F;
I=C+H;}}}}}}}}}}}}}}}}}} 
printf("%i,%i,%i,%i,%i,%i,%i,%i,%i\n",A,B,C,D,E,F,G,H,I);
}
je trouvais qu'elle était assez simple mais bon...
puis celle-ci
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
int calculA (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de A
 if (A!=-1){ calculB (A,B,C,D,E,F,G,H,I);}
   else        { A=0;
               while (A < 10) { A++;
                  calculB (A,B,C,D,E,F,G,H,I);}  }
 
int calculB (int A, int B, int C, int D, int E, int F, int G, int H, int I){ // Calcul de B 
if (B!=-1){ calculC (A,B,C,D,E,F,G,H,I);}
   else        { B=0;
               while (B < 10) { B++;  
                  calculC(A,B,C,D,E,F,G,H,I); }    }}
 
int calculC (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de C
 if (C!=-1){ calculD (A,B,C,D,E,F,G,H,I);}
   else        { C=0;
               while (C < 10) { C++;
                  calculD (A,B,C,D,E,F,G,H,I);}    }} 
 
int calculD (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de D
 if (D!=-1){ calculE (A,B,C,D,E,F,G,H,I);}
   else        { D=0;
               while (D < 10) { D++;
                  calculE (A,B,C,D,E,F,G,H,I);}  }}
 
int calculE (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de E
 if (E!=-1){ calculF (A,B,C,D,E,F,G,H,I);}
   else        { E=0;
               while (E < 10) { E++;
                  calculF (A,B,C,D,E,F,G,H,I);}  }}
 
 int calculF (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de F
 if (F!=-1){ calculG (A,B,C,D,E,F,G,H,I);}
   else        { F=0;
               while (F < 10) { F++;
                  calculG (A,B,C,D,E,F,G,H,I);}  }}
 
 int calculG (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de G
 if (G!=-1){ calculH (A,B,C,D,E,F,G,H,I);}
   else        { G=0;
               while (G < 10) { G++;
                  calculH (A,B,C,D,E,F,G,H,I);}  }}
 
int calculH (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de H
 if (H!=-1){ calculI (A,B,C,D,E,F,G,H,I);}
   else        { H=0;
               while (H < 10) { H++;
                  calculI (A,B,C,D,E,F,G,H,I);}  }}
 
int calculI (int A, int B, int C, int D, int E, int F, int G, int H, int I){  // Calcul de I
 if (I!=-1){ calculfin (A,B,C,D,E,F,G,H,I);}
   else        { I=0;
               while (I < 10) { I++;
                  calculA (A,B,C,D,E,F,G,H,I);}  }}
le problème c'est que les boucles while sont fermés alors que la valeur n'est pas encore trouvé
on m'a conseiller la méthode de cramer mais cela m'a l'air pas mal compliqué
c'est pour cela que je vous demande votre avis.
si vous avez des idées ou des suggestions n'hésitez pas à me le dire.

Merci