Cdev inexecutable!!!!
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Cdev inexecutable!!!!



  1. #1
    invite0da6e6b6

    Red face Cdev inexecutable!!!!


    ------

    slt ,mon compilateur en Cdev n'execute que la commande de lecture scanf() , et puis il se bloque.j'arrive pas a comprendre la cause!! merci de votre aide

    -----

  2. #2
    invite2d7144a7

    Re : Cdev inexecutable!!!!

    Bonjour,

    Je suppose que tu veux parler de DevC++ (mais peu importe).

    1) Ce n'est pas ton Cdev qui bloque, mais TON programme.

    2) Ma boule de cristal étant en panne, et étant trop fatigué pour utiliser mes facultés de lecture de pensées, j'ai beaucoup de peine à savoir ce que fait ton code (en clair : et le code, où est-il ?).

  3. #3
    Jack
    Modérateur

    Re : Cdev inexecutable!!!!

    ma boule de cristal à moi que j'ai fonctionne encore un peu. Elle me dit qu'il manque l'opérateur d'adresse & devant l'identificateur de la variable.

    En clair, il ne faut pas écrire:
    Code:
    int i:
    scanf("%d", i);
    mais:
    Code:
    int i:
    scanf("%d",& i);
    A+

  4. #4
    invite0da6e6b6

    Exclamation Re : Cdev inexecutable!!!!

    Code:
    typedef struct element
       { int val;
          struct element *suiv;
          struct element *prec;
        }element; 
    struct element *pl;
    
     void ajouter(int x)
     {element *e1, *e2;
     e1=nouv(x);
             if(!pl) pl=e1;
             else 
             { 
             e1=pl;
             while(e2->suiv) e2=e2->suiv;
             e1->prec=e2;
             e2->suiv=e1;
             }
     }
    
        int main(int argc, char *argv[])
        { element *el;
        int x;
        pl=NULL;
         printf("ajouter un element x= ");
        scanf("%d",&x);
        ajouter(x);
        
        el=pl;
        while(el)
        { printf("%d\n",el->val);
        el=el->suiv;
        }
    
    
      
      system("PAUSE");	
      return 0;
    }
    Dernière modification par JPL ; 29/12/2010 à 15h56. Motif: Ajout de la balise Code pour la lisibilité

  5. A voir en vidéo sur Futura
  6. #5
    invite0da6e6b6

    Re : Cdev inexecutable!!!!

    c mon programme sachant que la fonction nouv(x) est a 100% correcte!
    pour la boule de cristal; j'ai cru que c'etait a cause d'une incompatibilité entre le devC++ et windows 7 (64 bits)!!

  7. #6
    Jack
    Modérateur

    Re : Cdev inexecutable!!!!

    on ne vois pas ce que fait la fonction nouv().

    De plus, c'est très pénible de lire un code non indenté. Il est donc recommandé d'encadrer le code par les balises code.

    A+

  8. #7
    invite0da6e6b6

    Smile Re : Cdev inexecutable!!!!

    il s'agit d'ajouter un element dans une liste doublement chainée , la fonction nouv(x) nous rend un element don element->valeur=x.
    Code:
     element *nouv(int x)
     { element *e;
       e=(element*) malloc(sizeof(element));
       e->val=x;
       e->suiv=NULL;
       e->prec=NULL;
       return e;
     }
    merci de votre aide!!

  9. #8
    Jack
    Modérateur

    Re : Cdev inexecutable!!!!

    je voulais m'assurer que tu avais bien fait le malloc.

    Tu as essayé d'exécuter en pas-à-pas pour voir sur quelle instruction ton programme plante?

    A+

  10. #9
    Jack
    Modérateur

    Re : Cdev inexecutable!!!!

    je viens de tester ton programme avec visual studio. On ne peut évidemment entrer qu'une valeur, mais en tout cas pas de plantage et la valeur est bien dans la liste.

    A+

    PS: si je peux me permettre une petite remarque, si tu peux éviter les variables globales, fais-le. Par exemple, tu devrais mettre la variable pl dans la fonction main et la passer en paramètre à la fonction ajouter.
    Ça rend les fonctions plus indépendantes du programme et évite ainsi les effets de bord.

  11. #10
    invite2d7144a7

    Re : Cdev inexecutable!!!!

    Bonjour,
    Citation Envoyé par Jack Voir le message
    je viens de tester ton programme avec visual studio. On ne peut évidemment entrer qu'une valeur, mais en tout cas pas de plantage et la valeur est bien dans la liste.

    A+

    PS: si je peux me permettre une petite remarque, si tu peux éviter les variables globales, fais-le. Par exemple, tu devrais mettre la variable pl dans la fonction main et la passer en paramètre à la fonction ajouter.
    Ça rend les fonctions plus indépendantes du programme et évite ainsi les effets de bord.
    On peut pratiquement toujours s'en passer.

    Et le conseil est bon, c'est même une des clés d'une programmation "propre".

  12. #11
    invite0da6e6b6

    Thumbs up Re : Cdev inexecutable!!!!

    oui , c b1 ,ça a fonctionné !!!
    merci a tous de votre collaboration

  13. #12
    Jack
    Modérateur

    Re : Cdev inexecutable!!!!

    Qu'est ce qui ne fonctionnait pas finalement?

    A+

  14. #13
    invite0da6e6b6

    Talking Re : Cdev inexecutable!!!!

    je ne sais pas exactement de quoi ill s'agit, mais j'ai commis qq fautes au programme initial dans la syntaxe de scanf et celle de printf. en fait je suis tout a fait debutant avec le language C et ses fonctionnnalites. merci jack de votre aide!