[langage C] verification

Résolu/Fermé
nicochamadelol Messages postés 78 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 9 mai 2011 - 2 déc. 2007 à 15:09
kzanadeus Messages postés 70 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 4 décembre 2009 - 3 déc. 2007 à 10:18
Bonjour,
j'ai un programme a faire qui est:
Dans un repere du plan un point M est caractériser par ses 2 coordonnées xM et yM
un triangle est caractériser par la donnée de trois points du plan
on desir travailler sur la recherche de propriété eventuelle des triangles dont les sommet on pour abcisse des nombre entiers appartenant a l'intervalle[0 ; 1200] et pour ordonnée des nombres entiers appartenant a l'intervalle [0 ; 800]
on rapelle que le carré de la distance entre deux point A et B est donné par la formule

AB au carré =(xb-xa)au carré+(yb-ya)au carré

le programme doit demander les coordonnée des 3 point du triangle et dire si les donné sont acceptable et si le triangle est:
-rectangle
-isocele
-isocele rectangle
-equilatéral
-sans propriété

mon programme resemble a ca et je voudrai savoir si il n'y a pas de faute ou si il pourrai avoir des modifs a faire

merci de m'aider

#include <stdio.h>
int main()
{
int i ;
int x ;
int y ;
int dAB ;
int dBC ;
int dCA ;
int xA ;
int xB ;
int xC ;
int yA ;
int yB ;
int yC ;
int d1 ;
int d2 ;
int d3 ;
int Estrectangle ;
int Estisocele ;
int Estequi ;

for ( i=1 ; i<=3 ; i++ ) {
x=9999 ;

while (x>1200) {
printf("Saisir l'abcisse x du point n° %d\n",i) ;
scanf("%d", &x) ;

if (x>1200) {
printf("Erreur, doit etre inférieur a 1200\n") ;
}
}
y=9999 ;

while (y>800) {
printf("Saisir l'ordonnée y du point n° %d\n",i) ;
scanf("%d", &y) ;

if (y>800) {
printf("Erreur, doit etre inférieur a 800\n") ;
}
}
switch(i){
case 1:xA=x;yA=y;
case 2:xB=x;yB=y;
case 3:xC=x;yC=y;
}
}
dAB=((xB-xA)*(xB-xA))+((yB-yA)*(yB-yA));
dBC=((xC-xB)*(xC-xB))+((yC-yB)*(yC-yB));
dCA=((xA-xC)*(xA-xC))+((yA-yC)*(yA-yC));

printf("dAB= %d \n",dAB);
printf("dBC= %d \n",dBC);
printf("dCA= %d \n",dCA);

if((dAB<=dBC)&&(dAB<=dCA))
{
d1 = dAB;
if(dBC<=dCA)
{
d2=dBC;
d3= dCA;
}
else
{
d2=dCA;
d3=dBC;
}
}
if((dBC<=dAB)&&(dBC<=dCA))
{
d1 = dBC;
if(dAB<=dCA){
d2= dAB;
d3= dCA;
}
else{
d2=dCA;
d3=dAB;
}
}
if((dCA<=dBC)&&(dCA<=dAB)){
d1 = dCA;
if(dBC<=dAB){
d2= dBC;
d3= dAB;
}
else{
d2=dAB;
d3= dBC;
}
}


printf("d1= %d \n",d1);
printf("d2= %d \n",d2);
printf("d3= %d \n",d3);

if(d3==d1+d2){
Estrectangle=1;
}
if((dAB==dBC) || (dAB==dCA) || (dBC==dCA)){
Estisocele=1;
}
if((dAB==dBC) && (dAB==dCA) && (dBC==dCA)){
Estequi=1;
}


if((Estrectangle==1) && (Estisocele==1)){
printf("ce triangle est rectangle et isocèle\n");
}
else{
if(Estrectangle==1){
printf("ce triangle est rectangle\n");
}

if(Estisocele==1){
printf("ce triangle est isocele\n");
}
}
if(Estequi==1){
printf("ce triangle est equilatérale\n");
}
if ((Estequi==0)&& (Estisocele==0) &&(Estrectangle==0)){
printf("ce traingle n'a pas de propriété particulière\n");
}
return 0 ;
}
A voir également:

1 réponse

kzanadeus Messages postés 70 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 4 décembre 2009 3
3 déc. 2007 à 10:18
Salut, sans vouloir être offensant tu devrais créer des fonction et non pas tout faire dans la même car sinon on'y voit rien du tout et puis évite d'utiliser 2000 variables, fait des tableaux ou des pointeurs sachant que tu as la chance de savoir combien tu va avoir de variable toi.

De plus si dans un if tu n'as qu'une ligne de commande mets la a coté sans {} comme cela ona moins de ligne et on comprend mieu.

Sinon sa m'a l'air correct et faire ce que tu souhaite.

;)

Cordialement
0