Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

probleme avec structure et pointeur

2 participants

Aller en bas

probleme avec structure et pointeur Empty probleme avec structure et pointeur

Message par nyergk Lun 17 Déc - 23:04

bonjour,

je suis debutant en programmation, et j essaie de faire une fonction renvoyant l intersection entre deux points (en utilisant une structure pour les points) et en renvoyant le resultat de la fonction a l aide d un pointeur sur la structure, et bizarrement le programme arrondit le resultat, et renvoie 300.000 pour x et y au lieu de 333.33333 !!!

voici le programme:
Code:
#include<allegro.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
 
#define blanc makecol(255,255,255)
 
//structures
struct point {double x,y;};
struct ligne {double a,b;}; //y=ax+b
 
//routines
double intersection_droite(struct point M1,struct point M2, struct point M3,struct point M4, struct point *adresseM );
 
int main()
{  allegro_init();
  install_keyboard();
  set_color_depth(32);
  set_gfx_mode(GFX_AUTODETECT_FULLSCREEN,1920,1080,0,0);
  //
  struct point A,B,C,D,E ;
  A.x=100;A.y=100; B.x=200;B.y=200;
  C.x=300;C.y=0;D.x=400;D.y=1000;
  E.x=0;E.y=0;
  intersection_droite(A,B,C,D,&E) ;
  textprintf(screen,font,0,0,blanc,"x=%lf  y=%lf ",(E.x),(E.y));
  while(key[KEY_ESC]==0);
  return 0;
}END_OF_MAIN();
 
 
 
//routines
double intersection_droite(struct point M1,struct point M2, struct point M3,struct point M4, struct point *adresseM )
{  double k1,k2  ;
    if(M2.x-M1.x!=0)  k1=(M2.y-M1.y)/(M2.x-M1.x) ;                                      // y=k1(x-xm1)+ym1
    if(M4.x-M3.x!=0)  k2=(M4.y-M3.y)/(M4.x-M3.x) ;                                      // y=k2(x-xm3)+ym3
 
    if(M1.x!=M2.x && M3.x!=M4.x)
    { if(k1!=k2)                                                                                      // 0=x(k1-k2)-k1.xm1+k2.xm3+ym1-ym3
        {adresseM->x=(k1*M1.x-k2*M3.x-M1.y+M3.y)/(k1-k2) ;                 
        adresseM->y= k1*((adresseM->x)-M1.x)+M1.y ;
        }
      if(k1==k2)  adresseM=0 ;
    }
  return 0;
}



je seche pour trouver le bug ! quelqu un a t il une explication ? merci d avance.


Dernière édition par nyergk le Mar 18 Déc - 14:42, édité 1 fois

nyergk
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 3
Localisation : france
Réputation : 0
Points : 4363
Date d'inscription : 17/12/2012

Revenir en haut Aller en bas

probleme avec structure et pointeur Empty Re: probleme avec structure et pointeur

Message par nyergk Mar 18 Déc - 1:57

oups, la routine est correct, c est moi qui me suis trompé en calculant sur papier... ... ... drunken

nyergk
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 3
Localisation : france
Réputation : 0
Points : 4363
Date d'inscription : 17/12/2012

Revenir en haut Aller en bas

probleme avec structure et pointeur Empty Re: probleme avec structure et pointeur

Message par Napoléon Dim 30 Déc - 23:33

Smile Tant mieux!
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
probleme avec structure et pointeur Left_bar_bleue999/1000probleme avec structure et pointeur Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

probleme avec structure et pointeur Empty Re: probleme avec structure et pointeur

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum