IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

fusion de deux tableaux en un autre tableau


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut fusion de deux tableaux en un autre tableau
    Bonjour a tous,

    dans mon exercice on suppose que nos tableaux sont triés et sans répitition ..

    mon probleme est dans la fusion a vrai dire, je pense que mon code source n'est pas correct (exactement dans ma fonction de fusion) mais je ne vois pas d'autre manière de traiter le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include<iostream>
    #include<stdio.h>  
     
    void fusion(int T[],int V[],int L[] ,int n,int m,int c){
        int i=0; 
        int j=0; 
        int k=0;
        int l;
     
        while ((i<= n-1)&&(j<= m-1)){
              if(T[i]<= V[j]){
                       L[k]= T[i];
                       i=i+1;
                       }
                       else{
                            L[k]= V[j];
                            j=j+1;
                            }
     
          k=k+1; 
        }  
     
     
     
     
    }                 
     
    void lecture(int T[],int n){
         int i;
         printf ("veuillez remplir votre tableau svp :");
             for(i=0 ;i<n ;i++){
     
                 printf (" \n T[%d]=",i);
                 scanf("%d",&T[i]);
                 }
    }
     
    void afficher(int T[],int n){
         int i;
         printf ("notre tableau \t:");
             for (i=0 ;i<n;i++){
                 printf (" %d ", T[i]);     
             }    
    }
     
    int main()
    {
          int tab1[100],tab2[100],tab3[100];
          int x,y;
          int z;
     
     
          printf("donnez la taille du 1er tableau svp :");
          scanf("%d",&x);
          lecture(tab1,x);
          afficher(tab1,x);
          printf("\n\n donnez la taille du 2eme tableau svp :");
          scanf("%d",&y);
          lecture(tab2,y);
          afficher(tab2,y);
          printf("\n\n donnez la taille du 3eme tableau svp : ");
     
     
          fusion(tab1,tab2,tab3,x,y,z);
          afficher(tab3,z);        
         system("pause");         
    }

    Merci !!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    1/ Où initialises tu ta variable z ?
    Idée z devrait être la somme de x et de y

    2/ Dans ta fusion,tu as un problème aux limites dès que tu as passé le maximum d'un des tableaux tu ne vas pas chercher les élément de l'autre tableau qui devraient se positionner à la suite.
    Idée si tu as initialisé z c'est peut être ta limite


    Cordialement

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Bonjour

    La fusion c'est comme un appareillage: a chaque itération tu lis le tableau X dont l'élément précédemment lu était plus petit que l'élément du tableau Y en cours. Et dès que l'élément du tableau X devient plus grand, tu te mets alors à lire le tableau Y tant que c'est le cas.

    Petits conseils: tu as 3 variables "x", "y" et "z" qui sont associées à tes tableaux tab1, tab2 et tab3. Or si tu utilises l'outil dédié aux associations (les structures), tu passeras de 3 variables tableau et 3 variables int (total 6) à seulement 3 variables de type structure (voire une seule si tu mets ces 3 variables elle-même en tableau). Ca allègera ton code et tes fonctions (qui passeront de 6 paramètres à un seul)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    je suis désolé du retard dans ma réponse (probleme de connexion)..


    acaumes
    j'ai essayé ce que tu m'as dit mais le probleme persiste toujour (le programme plante).


    Sve@r
    ce programme est a résoudre sans structure d'aprés l'énoncé de l'exo et notre prof .



    je vous remercie pour votre aide et votre réponse !

  5. #5
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    Comment ton programme plante t il? Ce n'est pas vraiment aidant comme information.

    Sinon, je te confirmes que tu as un problème de bornes (et je t'ai donné des pistes à toi de les transformer en programme) :

    * Tu interclasse (fusion) des nombres tant que tu n'as pas terminé un ou l'autre des tableaux
    * Après il te reste tous les nombre du tableau que tu n'as pas terminé qui ne sont pas interclassés

    Exemple
    Tableau 1 => 2 5 8 9
    Tableau 2 => 3 6 7 11 13
    Tu obtiendras:
    2 3 5 6 7 8 9
    Il te manque 11 et 13

    Passes donc ton programme dans un déboguer, tu verras c'est instructif

    Cordialement

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Naswd_94 Voir le message
    j'ai essayé ce que tu m'as dit mais le probleme persiste toujour (le programme plante).
    Citation Envoyé par acaumes Voir le message
    Passes donc ton programme dans un déboguer, tu verras c'est instructif
    Ou simplement rajoute quelques printf() aux endroits critiques...

    Citation Envoyé par Naswd_94 Voir le message
    ce programme est a résoudre sans structure d'aprés l'énoncé de l'exo et notre prof .
    Etonnant que c'ait été spécifié vu que rajouter une structure ne fasse que simplifier l'écriture sans changer absolument rien à la façon de faire...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Ordonner la fusion de deux tableaux ordonnés
    Par KnightofEmpire dans le forum Pascal
    Réponses: 5
    Dernier message: 18/11/2013, 09h38
  2. Fusion de deux tableaux triés en un tableau trié
    Par adri010 dans le forum Débuter
    Réponses: 8
    Dernier message: 10/06/2010, 19h50
  3. [BO 5.1.8]fusion de deux tableaux (excel et bo)
    Par ninou58 dans le forum Deski
    Réponses: 4
    Dernier message: 24/06/2008, 08h21
  4. Réponses: 4
    Dernier message: 19/03/2008, 19h49
  5. Fusion de deux tableaux
    Par valefor dans le forum VHDL
    Réponses: 0
    Dernier message: 06/10/2007, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo