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 :

probleme d'execution avec DEV C++


Sujet :

C

  1. #81
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    car le tp1 fait appel au tp2 je dois da'bord remplir la matrice d'adjacence puis les 2 listes
    Ben je ne vois pas d'appel à tp2 dans la fonction tp1 !!!
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  2. #82
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Ben je ne vois pas d'appel à tp2 dans la fonction tp1 !!!
    oui c vrai nous en nous a demander d'abord d'effectuer le tp 1 (2 listes) puis tp2( matrice) mais moi j'ai d'abord rempli la matrice puis j'ai fait appel a la matrice pour quel m'aide a me donner le succ de chaque sommets c ca
    "un ordinateur est une machine à convertir la pensée en actions". JF

  3. #83
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    oui c vrai nous en nous a demander d'abord d'effectuer le tp 1 (2 listes) puis tp2( matrice) mais moi j'ai d'abord rempli la matrice puis j'ai fait appel a la matrice pour quel m'aide a me donner le succ de chaque sommets c ca
    Donc tu commences par tp2 alors ?

    Bon, étant donné que tu ne veux pas remplacer les scanf par des fgets, on va essayer de garder tes scanf, a ceci près :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void tp2 ()
    {  
        int c;    
        ......
        printf ("donner le nombre de sommets : ");
        scanf ("%d",&nb);
        while ( ((c = getchar()) != '\n') && c != EOF);
        .....
    Ca evitera quelques soucis, mais ce n'est pas gagné.
    Fais ça partout où tu as scanf, tout en restant cohérent bien entendu.
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  4. #84
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Ben je ne vois pas d'appel à tp2 dans la fonction tp1 !!!
    je vous pose 1 question: je veux remplir 1 tableau avec de sommets j'ai ecris ca mais je crois que c faux
    //initialisation du tableau sommet
    printf("entrer les sommets:\n");
    scanf("%c",&s);
    for (i=1;i<=nb;i++)
    {
    sommet[i]= s ;
    printf(" ");

    }
    "un ordinateur est une machine à convertir la pensée en actions". JF

  5. #85
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Donc tu commences par tp2 alors ?

    Bon, étant donné que tu ne veux pas remplacer les scanf par des fgets, on va essayer de garder tes scanf, a ceci près :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void tp2 ()
    {  
        int c;    
        ......
        printf ("donner le nombre de sommets : ");
        scanf ("%d",&nb);
        while ( ((c = getchar()) != '\n') && c != EOF);
        .....
    Ca evitera quelques soucis, mais ce n'est pas gagné.
    Fais ça partout où tu as scanf, tout en restant cohérent bien entendu.
    vous pouvez m'expliquer ca sert a quoi c=.....
    "un ordinateur est une machine à convertir la pensée en actions". JF

  6. #86
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    je vous pose 1 question: je veux remplir 1 tableau avec de sommets j'ai ecris ca mais je crois que c faux
    //initialisation du tableau sommet
    printf("entrer les sommets:\n");
    scanf("%c",&s);
    for (i=1;i<=nb;i++)
    {
    sommet[i]= s ;
    printf(" ");

    }
    Lorsque tu déclares un tableau de 5 élements comme ceci :
    tab[0] est le premier élément
    et
    tab[4] est le cinquième élements

    Or, toi tu commences ta boucle à 1 et tu termines à une valeur en dehors du tableau, d'où plantage.
    Il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for (i=0;i<nb;i++)
     {
        sommet[i]= s ;
        ......
     }
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  7. #87
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Lorsque tu déclares un tableau de 5 élements comme ceci :
    tab[0] est le premier élément
    et
    tab[4] est le cinquième élements

    Or, toi tu commences ta boucle à 1 et tu termines à une valeur en dehors du tableau, d'où plantage.
    Il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for (i=0;i<nb;i++)
     {
        sommet[i]= s ;
        ......
     }
    mais lors de l'execution le tableau ne s'affiche pas
    "un ordinateur est une machine à convertir la pensée en actions". JF

  8. #88
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    vous pouvez m'expliquer ca sert a quoi c=.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while ( ((c = getchar()) != '\n') && c != EOF);
    Cette ligne permet de flusher le tampon d'entrée (stdin).
    Sur ton clavier lorsque tu rentres un entier, tu valides par la touche entrée.
    Donc dans le tampon, tu as un entier + le code correspondant à la touche entrée (le fameux "\n"). Dans ton cas, scanf attends seulement un entier.
    Que fait-on du "\n" ? Et bien on le flush. De plus rien ne t'empeches de rentrer un entier + n'importe quoi + entrée. C'est pour ces raisons qu'on emploi la manière radicale ; tirer la chasse d'eau...
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  9. #89
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    mais lors de l'execution le tableau ne s'affiche pas
    Je n'ai pas saisi là !!!!
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  10. #90
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Je n'ai pas saisi là !!!!
    //initialisation du tableau sommet
    printf("entrer les sommets pour terminer afficher '*': ");
    printf("");
    scanf("%c",&s);
    for (i=0;i<nb;i++)
    {
    sommet[i]= s ;
    printf(" ");

    }

    //initialisation de la matrice M
    for (i=1;i<=nb;i++)
    { printf("\n");
    for (j=1;j<=nb;j++)
    {
    M[i][j]=0;
    printf ("\t%d\t",M[i][j]);
    printf ("\n");
    }
    }il m'affiche n'importe quoi lors de l'execution!!!
    "un ordinateur est une machine à convertir la pensée en actions". JF

  11. #91
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    //initialisation du tableau sommet
    printf("entrer les sommets pour terminer afficher '*': ");
    printf("");
    scanf("%c",&s);
    for (i=0;i<nb;i++)
    {
    sommet[i]= s ;
    printf(" ");

    }

    //initialisation de la matrice M
    for (i=1;i<=nb;i++)
    { printf("\n");
    for (j=1;j<=nb;j++)
    {
    M[i][j]=0;
    printf ("\t%d\t",M[i][j]);
    printf ("\n");
    }
    }
    il m'affiche n'importe quoi lors de l'execution!!!
    Tu n'as pas lus mes précédents messages !!!!!
    J'ai dis quoi pour le scanf ?
    Et pour les tableaux ?
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  12. #92
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Alors cette fonction tp2() ? Elle avance ?
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  13. #93
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Alors cette fonction tp2() ? Elle avance ?
    je suis bloqué dans l'affichage des listes
    "un ordinateur est une machine à convertir la pensée en actions". JF

  14. #94
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    je suis bloqué dans l'affichage des listes
    Montres un peu ta fonction tp2() .
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  15. #95
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Montres un peu ta fonction tp2() .
    mais j'utilise tjrs les scanf je ne cpas utilisé d'autre choses alors si tu veux tjrs que je te montre ?????
    "un ordinateur est une machine à convertir la pensée en actions". JF

  16. #96
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par lucky31
    mais j'utilise tjrs les scanf je ne cpas utilisé d'autre choses alors si tu veux tjrs que je te montre ?????
    Ben oui, montres...
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  17. #97
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par crocodilex
    Ben oui, montres...
    mais j'ai pas encore fini avec la fonction index
    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
    void tp2 ()
    {//tp1();
    int i,j,c;
    char som1,som2;
    int nb=0;
    int nbr=0;
    char sommet[30];
    int M[30][30];
    printf ("donner le nombre de sommets : ");
    scanf ("%d",&nb);
     
     
     
    printf ("donner le nombre d'arcs : ");
    scanf ("%d",&nbr);
    printf("\n");
    //initialisation du tableau sommet
    for (i=0;i<nb;i++)
    {
       printf("\nDonner le nom du sommet nø%d :",i);
      scanf("%s",&sommet[i]);
    }
     
    //initialisation de la matrice M
     
    for (i=1;i<=nb;i++)
    { 
    for (j=1;j<=nb;j++)
    { getchar();
       printf("(%d,%d)= ",i,j);
       scanf("%d",&M[i][j]);
       printf("\n");
    }
    }
       printf( "la lecture de la matrice sommet-sommet");
          for(i=1;i<=nb;i++)
                 {
                            printf("\n");
                    for (j=1;j<=nb;j++)
               printf ("\t%d\t",M[i][j]);
             printf ("\n");
                    }
     
    //parcours en profondeur du graphe
    for (i=1;i<=nbr;i++)
    {
    int x,y;
    printf ("donner l'extremite initiale de l'arc \n: ");
    scanf ("%s",&som1);
    printf ("donner l'extremite terminale de l'arc \n: ");
    scanf ("%s",&som2);
    //x donne l'indice de som1 dans le tableau sommet
    x=Index(som1);
    // meme chose pour y
    y=Index(som2);
    M[x][y]=1;
    }
    //affichage de la matrice
    for (i=1;i<=nb;i++)
    {
    for (j=1;j<=nb;j++)
    printf ("%7d",M[i][j]);
    printf ("\n");
    }
    tp1 ();
    }
    mais il s'execute jusqu'a entrer l'extremite final!!
    "un ordinateur est une machine à convertir la pensée en actions". JF

  18. #98
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Bon allé, en vrac quelques corrections non exhaustives (compares avec ce que tu as déjà), parceque je commence à fatiguer un peu :

    La fonction main :
    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
    int main ()
    {
        int choix;
        do
        {
            choix = choisir ();
     
            if (choix==1)
                tp1 ();
            if (choix==2)
                tp2 ();
            if (choix==3)
                tp3 ();
            //if (choix==4) tp4 ();
        }
        while (choix!=5);
        return 0;
    }
    La fonction choisir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int choisir ()
    {
        int choix, c;
        printf ("tapez 1 pour effectuer le tp1 \n");
        printf ("tapez 2 pour effectuer le tp2 \n");
        printf ("tapez 3 pour effectuer le tp3 \n");
        printf ("tapez 4 pour effectuer le tp4 \n");
        printf ("tapez 5 pour sortir \n");
        printf (" Donner votre choix: ");
        scanf ("%d",&choix);
        while ( ((c = getchar()) != '\n') && c != EOF);
     
        return (choix);
    }
    La fonction tp2:
    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
    68
    69
    70
    71
    void tp2 ()
    {//tp1();
        int i,j,c;
        char som1,som2;
        int nb=0;
        int nbr=0;
        char sommet[30][30]; /* Tableau de 30 chaines de caractères */
        int M[30][30];
        printf ("donner le nombre de sommets : ");
        scanf ("%d",&nb);
        while ( ((c = getchar()) != '\n') && c != EOF);
     
        printf ("donner le nombre d'arcs : ");
        scanf ("%d",&nbr);
        while ( ((c = getchar()) != '\n') && c != EOF);
        //printf("\n");
        //initialisation du tableau sommet
        for (i=0;i<nb;i++)
        {
            printf("\nDonner le nom du sommet nø%d :",i);
            scanf("%s",&sommet[i][0]);
            while ( ((c = getchar()) != '\n') && c != EOF);
        }
     
        //initialisation de la matrice M
     
        for (i=0;i<nb;i++)
        {
            for (j=0;j<nb;j++)
            {
                //getchar();
                printf("(%d,%d)= ",i,j);
                scanf("%d",&M[i][j]);
                while ( ((c = getchar()) != '\n') && c != EOF);
                //printf("\n");
            }
        }
        printf( "la lecture de la matrice sommet-sommet\n");
        for(i=0;i<nb;i++)
        {
            //printf("\n");
            for (j=0;j<nb;j++)
                printf ("\t%d\t",M[i][j]);
            printf ("\n");
        }
     
        //parcours en profondeur du graphe
        for (i=0;i<nbr;i++)
        {
            int x,y;
            printf ("donner l'extremite initiale de l'arc \n: ");
            scanf ("%c",&som1);
            while ( ((c = getchar()) != '\n') && c != EOF);
            printf ("donner l'extremite terminale de l'arc \n: ");
            scanf ("%c",&som2);
            while ( ((c = getchar()) != '\n') && c != EOF);
            //x donne l'indice de som1 dans le tableau sommet
            x=Index(som1);
            // meme chose pour y
            y=Index(som2);
            M[x][y]=1;
        }
        //affichage de la matrice
        for (i=0;i<nb;i++)
        {
            for (j=0;j<nb;j++)
                printf ("%7d",M[i][j]);
            printf ("\n");
        }
        tp1 ();
    }
    Je vais me coucher.....

    Si quelqu'un veut bien prendre la relève...
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  19. #99
    Membre régulier Avatar de lucky31
    Inscrit en
    Mai 2006
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 239
    Points : 73
    Points
    73
    Par défaut bonjour
    le dernier code poser bloque lors de l'execution au niveau de la fonction Index( elle est fait pour remplir la liste l1 car elle contient l'@ des successeurs et j'ai utilisé la matrice pour cela)
    merci de vouloir bien m'aider
    "un ordinateur est une machine à convertir la pensée en actions". JF

  20. #100
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par lucky31
    allez personne ne veut plus m'aider!!
    Ce code est incomplet. On ne peut pas le compiiler. Tu dois toujours vérifier que ce que tu postes est compilable ou alors tu demandes pourquoi il ne l'est pas...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [VB6]Probleme d'execution avec la commande Shell
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/06/2006, 09h28
  2. [DEB]Probleme de compil avec Dev-Cpp
    Par Marc_3 dans le forum Dev-C++
    Réponses: 3
    Dernier message: 31/01/2006, 22h27
  3. Problème d'exécution avec wxWidgets
    Par GLDavid dans le forum wxWidgets
    Réponses: 3
    Dernier message: 10/11/2005, 10h44
  4. probleme de librairie avec Dev-C++
    Par Miksimus dans le forum Dev-C++
    Réponses: 2
    Dernier message: 12/10/2005, 12h21
  5. [System][EXEC] Probleme d'execution avec une commande parametrée.
    Par chicorico dans le forum Général Java
    Réponses: 15
    Dernier message: 20/05/2005, 15h07

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