Donc un de mes amis a un peu de mal à faire en sorte que son code crache correctement un périmètre (lorsque vous saisissez un point sous forme de "x y") en utilisant une structure avec des fonctions.
MODIFICATION : Le code est censé prendre 4 points, calculer chaque côté en utilisant une fonction euclidienne. (vous verriez la tentative dans la fonction print_Perimeter)
Aussi, le programme est censé s'arrêter après avoir appuyé sur 'n', mais il n'a pas réussi à le résoudre, y a-t-il des suggestions que quelqu'un pourrait donner ?
J'ai essayé de lui donner un peu d'aide mais je n'ai pas réussi à le résoudre moi-même non plus. Désolé si le code semble un peu bricolé, nous avons essayé quelques choses et l'avons juste enregistré tel quel.
Si quelque chose a besoin de plus de clarification, je vais essayer de faire de mon mieux pour répondre. Merci d'avance !
typedef struct Point
{
int xCoord;
int yCoord;
}point;
int point_Print(int x, int y)
{
printf("(X Y): %d %d\n", x, y);
}
double print_TwoPoints(int a, int b, int c, int d)
{
double reponse = (sqrt(pow((a - c),2)) + (pow((b - d),2)));
printf("La distance entre le point (%d,%d) et le point (%d,%d) est de %.2lf.\n", a, b, c, d, reponse);
}
void print_Perimeter(Point *p1, Point *p3, Point *p4)
{
int perimetre = 2 * sqrt(pow((p1->xCoord - p4->xCoord),2) + pow((p1->yCoord - p4->yCoord), 2))
+ sqrt(pow((p1->xCoord - p3->xCoord),2) + pow((p1->yCoord - p3->yCoord), 2))
printf("Le périmètre du rectangle est : %d.\n", perimetre);
}
int main()
{
char toucheSortie = 'y';
//censé arrêter le programme
while(toucheSortie != 'n')
{
point xCoord1;
point yCoord1;
printf("Veuillez saisir les valeurs du premier point, X1 Y1 : \n");
scanf("%d %d", &(xCoord1.xCoord), &(yCoord1.yCoord));
point xCoord2;
point yCoord2;
printf("Veuillez saisir les valeurs du deuxième point, X1 Y1 : \n");
scanf("%d %d", &(xCoord2.xCoord), &(yCoord2.yCoord));
point xCoord3;
point yCoord3;
printf("Veuillez saisir les valeurs du troisième point, X1 Y1 : \n");
scanf("%d %d", &(xCoord3.xCoord), &(yCoord3.yCoord));
point xCoord4;
point yCoord4;
printf("Veuillez saisir les valeurs du quatrième point, X1 Y1 : \n");
scanf("%d %d", &(xCoord4.xCoord), &(yCoord4.yCoord));
point_Print(xCoord1.xCoord, yCoord1.yCoord);
point_Print(xCoord2.xCoord, yCoord2.yCoord);
point_Print(xCoord3.xCoord, yCoord3.yCoord);
point_Print(xCoord4.xCoord, yCoord4.yCoord);
print_TwoPoints(xCoord1.xCoord, yCoord1.yCoord, xCoord2.xCoord, yCoord2.yCoord);
print_TwoPoints(xCoord3.xCoord, yCoord3.yCoord, xCoord4.xCoord, yCoord4.yCoord);
Point p1;
p1.xCoord = xCoord1;
p1.yCoord = yCoord1;
Point p3;
p3.xCoord = xCoord3;
p3.yCoord = yCoord3;
Point p4;
p4.xCoord = xCoord4;
p4.yCoord = yCoord4;
print_Perimeter(&p1, &p3, &p4);
printf("Entrez 'y' pour saisir de nouvelles coordonnées ou entrez 'n' pour quitter le programme : \n");
scanf(" %c", &toucheSortie);
}
}