bonjour,

La boucle ne s'exécute que pour rc de 0~273, ra et rb ne sont pas incrémentés ! Mais pourquoi ? that is the question ?
Ce programme doit normalement me permettre de trouver les valeur des cotés ra rb rc d'un triangle equilatérale pour lesquels x et y sont des coordonnées entières.

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
 
#include<stdio.h>
#include<stdlib.h>
 
 
int main (void)
{
    int ra=0;
    int rb=0;
    int rc=0;
 
    int xa=0;
    int ya=0;
    int xb=273;
    int yb=0;
    int xc=273/2;
    int yc=273*sin(60);
 
    FILE *resultat=fopen("resultat.txt","w");
 
 
    int counter=0;
 
    for ( ra ; ra<=273 ; ra++ )
        {
            for ( rb ; rb<=273 ; rb++ )
                {
                    for ( rc ; rc<=273 ; rc++ )
                        {
                            float x  = ( rc*rc-xc*xc-yc*yc-rb*rb+xb*xb+yb*yb )/(2*((xa-xc)-1));
                            float y1 = ( rb*rc-ra*ra-xb*xb+xa*xa-yb*yb+ya*ya+2*x*(xb-xa) )/(2*(ya-yb)); 
                            float y2 = ( rc*rc-ra*ra-xb*xb+xa*xa-yc*yc+ya*ya+2*x*(xc-xa) )/(2*(ya-yc));
                            float y3 = ( rc*rc-rb*rb-xc*xc+xb*xb-yc*yc+yb*yb+2*x*(xc-xb) )/(2*(yb-yc));
 
                            printf("| counter=%d | ra=%d | rb=%d | rc=%d | \n",counter, ra ,rb, rc);
                            fprintf(resultat,"| counter=%d | ra=%d | rb=%d | rc=%d | \n",counter, ra ,rb, rc);
 
                            if ( (y1==y2)&&(y1==y3)&&(y2=y3) )
                               {
                                     printf("| counter=%d | ra=%d | rb=%d | rc=%d | \n",counter, ra ,rb, rc);
                                     fprintf(resultat,"| counter=%d | ra=%d | rb=%d | rc=%d | \n",counter, ra ,rb, rc);
                               }
                               counter++;
                        }
                }
        }
 
}
Merci d'avance.