Partage
  • Partager sur Facebook
  • Partager sur Twitter

eliminer les x donnée d'un tableau

    26 avril 2019 à 20:23:33

    creer un tableau et eliminer les x en utilisons 2 pointeurs p1 et p2.

    j'ai l'erreur :expected ';', ',' or ')' before numeric constant|

    #include <stdio.h>
    #include <stdlib.h>
    #define n 10
    
    void remplire( int A[], int n);
    void afficher( int A[], int n);
    
    void eliminer (int A[], int n ,int x );
    
    void remplire( int A[], int n)
    
    {
                 int *p1;
               for (p1=A;p1<A+n;p1++)
               {
                    printf ("entrer la valeur de %d",p1-A+1 );
                       scanf( "%d",p1);
               }
    }
    void afficher( int A[], int n)
    {
           int *p1;
           for (p1=A;p1<A+n;p1++)
         {
             printf ( "A[%d]=%d \t",p1-A, *p1);
         }
    }
    
    void eliminer (int A[], int n ,int x )
    {
           int *p1;
           int *p2;
           for (p1=p2=A;p1<A+n;p1++)
         {
             if (*(p1)=!x)
          {
              ( *p1)=(*p2);
          p2++;
          }
    
    
    
    
         }
    
    }
    
    int main()
    {
        int A[n], x ;
    
        remplire(  A[n],  n);
        afficher(  A[n],  n);
        printf ("entrer la valeur  que vous cherchez");
        scanf ( "%d",&x);
    
    
        eliminer ( A[n], n, x );
        afficher(  A[n],  n);
    
    
    
    }
    



    • Partager sur Facebook
    • Partager sur Twitter
      26 avril 2019 à 21:57:43

      Bonjour,

      Ligne 3, tu indiques que tous les mots n sont en réalité des 10.
      Ligne 5, le compilateur lit donc la ligne void remplire( int A[] , int 10 ); Vois-tu mieux le problème ?
      - Une 'astuce' pour ne pas se faire avoir. réserver l'écriture en majuscule pour les define, et les variables doivent être en minuscule. Donc A devient a et des n deviennent N et d'autres resteraient n.
      - Une autre 'astuce' : utiliser des noms de variables, de types et de fonctions explicites. Ainsi a devient tableau_d_entiers, N devient TAILLE_MAX_TABLEAU et n devient taille_utilisee.
      - Ces 'astuces' sont utilisées par presque tous les développeurs.

      Il y a aussi un problème lignes 52,53,58 et 59. Je ne pense pas que tu souhaitais transmettre l'élément de tableau A[n], c'est plutôt un accès au tableau que les fonctions attendent.

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        26 avril 2019 à 22:31:08

        #include <stdio.h>
        #include <stdlib.h>
        #define  TAILLE_MAX_TABLEAU 10
        
        void remplire( int tableau_d_entiers[],int  TAILLE_MAX_TABLEAU);
        void afficher( int tableau_d_entiers[],int TAILLE_MAX_TABLEAU);
        
        void eliminer (int tableau_d_entiers[], int TAILLE_MAX_TABLEAU ,int x );
        
        void remplire( int tableau_d_entiers[], int TAILLE_MAX_TABLEAU)
        
        {
                     int *p1;
                   for (p1=tableau_d_entiers;p1<tableau_d_entiers+TAILLE_MAX_TABLEAU;p1++)
                   {
                        printf ("entrer la valeur de %d",p1-tableau_d_entiers+1 );
                           scanf( "%d",p1);
                   }
        }
        void afficher( int tableau_d_entiers[],  TAILLE_MAX_TABLEAU)
        {
               int *p1;
               for (p1=tableau_d_entiers;p1<tableau_d_entiers+TAILLE_MAX_TABLEAU;p1++)
             {
                 printf ( "A[%d]=%d \t",p1-A, *p1);
             }
        }
        
        void eliminer (int a[],  TAILLE_MAX_TABLEAU ,int x )
        {
               int *p1;
               int *p2;
               for (p1=p2=tableau_d_entiers;p1<tableau_d_entiers+TAILLE_MAX_TABLEAU;p1++)
             {
                 if (*(p1)=!x)
              {
                  ( *p1)=(*p2);
              p2++;
              }
        
        
        
        
             }
        
        }
        
        int main()
        {
            int tableau_d_entiers[TAILLE_MAX_TABLEAU], x ;
        
            remplire(  tableau_d_entiers[], TAILLE_MAX_TABLEAU);
            afficher(  tableau_d_entiers[],  TAILLE_MAX_TABLEAU);
            printf ("entrer la valeur  que vous cherchez");
            scanf ( "%d",&x);
        
        
            eliminer ( tableau_d_entiers[], TAILLE_MAX_TABLEAU, x );
            afficher(  tableau_d_entiers[],  TAILLE_MAX_TABLEAU);
        
        
        
        }
        encore le mm probleme!!
        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2019 à 16:04:15

          Je dois vraiment très mal expliquer.
          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

            27 avril 2019 à 16:34:05

            Hello,

            Deux idées de code:

            #define  TAILLE_MAX_TABLEAU 10
             
            void remplire(int tableau_d_entiers[],int taille) {
            	....
            	
            	for(p1=tableau_d_entiers;p1<tableau_d_entiers+taille;p1++)
            		....
            		
            }
            
            int main(void) {
                int tableau_d_entiers[TAILLE_MAX_TABLEAU];
             
                remplire(tableau_d_entiers, TAILLE_MAX_TABLEAU);
            	
            	....
             
            }
            
            

            ou

            #define  TAILLE_MAX_TABLEAU 10
             
            void remplire(int tableau_d_entiers[]) {
            	....
            	
            	for(p1=tableau_d_entiers;p1<tableau_d_entiers+TAILLE_MAX_TABLEAU;p1++)
            		....
            		
            }
            
            int main(void) {
                int tableau_d_entiers[TAILLE_MAX_TABLEAU];
             
                remplire(tableau_d_entiers);
            	
            	....
             
            }

            Dalfab a écrit:

            Je dois vraiment très mal expliquer.

            :D



            -
            Edité par edgarjacobs 27 avril 2019 à 16:44:03

            • 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

              29 avril 2019 à 11:46:20

              Salut,

              En plus d'un message explicite, le compilo indique le fichier et la ligne où se situe l'erreur, ce qui serait utile pour qu'on sache où regarder.

              L'erreur peut aussi venir d'un fichier "amont", par exemple s'il manque un point-virgule à la fin d'une déclaration dans l'un des fichiers en include...

              -
              Edité par drx 29 avril 2019 à 11:48:43

              • Partager sur Facebook
              • Partager sur Twitter

              Bonhomme !! | Jeu de plateforme : Prototype.

                29 avril 2019 à 15:01:22

                Hello,


                1] Si n est une constante, effectivement, les règles de nomenclature veulent que n soit une majuscule i.e N.
                2] Si N est une constante, tu n'as pas besoin de la passer en paramètre de tes fonctions.
                3] L'écriture de code commence par une indentation correcte. Pas étonnant que tu n'arrives même pas à te relire et à corriger des fautes qui ne sont que des fautes de syntaxe.
                4] Toute initialisation de pointeur doit l'être à NULL i.e int *p = NULL;
                5] Qu'appelles tu éliminer ? Car d'un point de vue sémantique, ta fonction éliminer ressemble plus à remplacer qu'à éliminer et encore.
                6] Aussi, tout pointeur passé en paramètre doit être contrôlé avant d'y tenter un accès.
                7] Les indices d'un tableau sont des entiers positifs sauf si tu travailles avec des offsets et dans des cas biens particuliers. Autant utiliser le type size_t plutôt que int. Tu n’accéderas jamais à p[-12]. Même si cela fonctionne, d'un point de vue conceptuel, c'est incorrect.

                Exemple pour la fonction afficher


                void afficher( int *p, size_t p_sz )
                {
                    if ( p )
                    {
                        for( size_t i=0 ; i<p_sz ; i++ )
                            printf("\np[%zu] = %d", i, p[i]):
                    }
                }

                -
                Edité par aneonymous 29 avril 2019 à 16:15:11

                • Partager sur Facebook
                • Partager sur Twitter

                eliminer les x donnée d'un tableau

                × 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