Partage
  • Partager sur Facebook
  • Partager sur Twitter

structure enregistrement

taleau

Sujet résolu
    21 avril 2019 à 23:30:26

    Bonjour j'ai une problème sur la fonction void main ( ) je pense que c'est le tableau , quelqu'un peut m'aider svp ?
    #include <stdio.h>
    struct point{
        char couleur[10];
        int x;
        int y;
    };
    typedef struct point tpoint;
    tpoint lecture_p1()
    {
        tpoint p;
        printf ("donner le couleur de ton point");
        scanf("%s",p.couleur);
        printf("donner l'abscisse de ton point");
        scanf("%d",p.x);
        printf("donner l'ordonnee de ton point");
        scanf("%d",p.y);
    return p;
    }
    void affiche_p(tpoint p)
    {
        printf("couleur:",p.couleur);
        printf("abscisse:",p.x);
        printf("ordonnee:",p.y);
    }
    void lecture_p2(tpoint* p)
    {
        printf("donner le couleur de ton point");
        scanf("%s",(*p).couleur);
        printf("donner l'abscisse de ton point");
        scanf("%d",(*p).x);
        printf("donner l'ordonnee de ton point");
        scanf("%d",(*p).y);
    }
    void remplir_tp(tpoint *t,int *n)
    {int i;
        do
        {
        printf ("donner le nombre de point");
        scanf("%d",n);
        }while(!(*n<=20));
         for (i=0;i<*n;i++)
         {
             printf("donner les coordonnee de ton point N=°%d",i);
             lecture_p2(&t[i]);
         }
    }
    void affiche_tp(int *n,tpoint *t)
    {int i;
        for (i=0;i<*n;i++)
        {
            printf("les coordonnees du point numero %d:",i);
            printf("le couleur est %s",&t[i].couleur);
            printf("l'abscisse est %d",&t[i].x);
            printf("l'ordonnee est %d",&t[i].y);
        }
    
    }
    int existe_p(tpoint t[],int n,int ord,int absc,tpoint p,int i)
    {
        i=0;
        ord=p.y;
        absc=p.x;
           if(i<n)
                return -1;
           else if((t[i].x==ord)&&(t[i].y==absc))
            return i;
        return existe_p(t,n,ord,absc,p,i+1);
    
    }
    
    void main( )
    {
        tpoint k,t[20],p;
        int n,i,pos,ord,absc;
        remplir_tp(&t,&n);
        affiche_tp(&n,&t);
        printf("donner le point p");
        p=lecture_p1();
        pos=existe_p(t,n,ord,absc,p,i);
        if (pos==-1)
            printf("p n'existe pas");
        if (pos!=-1)
            affiche_p(p);
    
    }

    -
    Edité par Moiyse 21 avril 2019 à 23:31:44

    • Partager sur Facebook
    • Partager sur Twitter
      22 avril 2019 à 0:34:41

      Hello,

      Ligne 75: t est un tableau, donc une adresse. Et tu passes l'adresse d'une adresse à la fonction remplir_tp(), qui n'attend qu'une adresse.

      Ligne 76: même erreur.

      Quand tu auras réglé ces deux erreurs, il en restera d'autres, à régler sous peine de crash:

      #.c: In function 'lecture_p1':
      #.c:14:13: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=]
           scanf("%d",p.x);
                   ^
      #.c:16:13: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=]
           scanf("%d",p.y);
                   ^
      #.c: In function 'lecture_p2':
      #.c:30:13: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=]
           scanf("%d",(*p).x);
                   ^
      #.c:32:13: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=]
           scanf("%d",(*p).y);
                   ^
      #.c: At top level:
      #.c:71:6: warning: return type of 'main' is not 'int' [-Wmain]
       void main( )
            ^~~~
      #.c: In function 'main':
      #.c:73:12: warning: unused variable 'k' [-Wunused-variable]
           tpoint k,t[20],p;
                  ^
      #.c:79:8: warning: 'ord' is used uninitialized in this function [-Wuninitialized]
           pos=existe_p(t,n,ord,absc,p,i);
           ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
      #.c:79:8: warning: 'absc' is used uninitialized in this function [-Wuninitialized]
      #.c:79:8: warning: 'i' is used uninitialized in this function [-Wuninitialized]
      
      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        22 avril 2019 à 0:53:13

        merci bro , ça ma aider beaucoup
        • Partager sur Facebook
        • Partager sur Twitter

        structure enregistrement

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown