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 :

mon programme s'execute pas


Sujet :

C

  1. #1
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut mon programme s'execute pas
    J'ai un problème avec mon petit programme qui se compile mais malheureusement il s'exécute pas. j'ai presque tout essayé mais ça marche toujours pas,j'ai vraiment besoin de votre aide.
    voila le code de mon programme:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #define taille 50; 
     
    int **creation(int N,int** matrice) 
    {  
    int I,J,i ; 
     
    matrice =(int**) malloc( N * sizeof(int*));
     
    if( matrice == NULL )
    {
         fprintf(stderr,"Allocation impossible");
         exit(EXIT_FAILURE);
    }
     
    for( i = 0 ; i < N ; i++ )
    {
         matrice[i] =(int*) calloc (N, sizeof(int));
     
         if( matrice[i] == NULL )
         {
              fprintf(stderr,"Allocation impossible");
              exit(EXIT_FAILURE);
         }
    }
     
    for (I=0; I<N; I++){
       for (J=0; J<N; J++)  
          {printf("1=> extremite initiale / 0=> extremite finale\n  entrer la valeur du noeud [%d][%d]:",I,J);
           scanf("%d",matrice[I][J]);}
                        }
       return matrice;   
          }
     
    main()
    {   
     int** matrix;
     int N,I,J;   
                printf("Entrer le nombre des noeuds: \n");
                scanf("%d", &N );
                if(N < 50)                      
                    matrix=creation(N,matrix);
                else
                    printf("Vous avez depassé le nombre maximum des noeuds accordé");    
    system("pause");
     return 0;
    }

  2. #2
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Quelques rapide remarques :
    • Inutile de caster le retour de malloc
    • scanf attend une adresse en paramètre
    • Donner un nom significatif et propre à chaque variables, on finit toujours par s'en mêler les pinceaux, la preuve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d",&matrice[I][J]);

  3. #3
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    Quelques rapide remarques :
    • Inutile de caster le retour de malloc
    • scanf attend une adresse en paramètre
    • Donner un nom significatif et propre à chaque variables, on finit toujours par s'en mêler les pinceaux, la preuve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d",&matrice[I][J]);
    j'ai déjà essayé sans caster malloc mais ça me donne une erreur de conversion de type,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    invalid conversion from `void*' to `int**'

  4. #4
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut
    Ça y est c'est fait le problème est réglé, hors quand j'ai organisé les fonctions dans un menu le problème est revenu

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    #include <stdio.h>
    #include <stdlib.h>
    #define taille 50; 
     
    int **creation(int N,int** matrice) 
    {  
    int I,J,i ; 
     
    matrice =(int**)malloc( N * sizeof(int*));
     
    if( matrice == NULL )
    {
         fprintf(stderr,"Allocation impossible");
         exit(EXIT_FAILURE);
    }
     
    for( i = 0 ; i < N ; i++ )
    {
         matrice[i] =(int*)calloc (N, sizeof(int));
     
         if( matrice[i] == NULL )
         {
              fprintf(stderr,"Allocation impossible");
              exit(EXIT_FAILURE);
         }
    }
     
    for (I=0; I<N; I++){
       for (J=0; J<N; J++)  
          {printf("1=> extremite initiale / 0=> extremite finale\n  entrer la valeur du noeud [%d][%d]:",I,J);
           scanf("%d",&matrice[I][J]);}
                        }
       return matrice;   
          }
     
    void affichage(int N,int **matrice) {
         int I,J;
     printf("La Matrice donnée :\n");
     for (I=0; I<N; I++)
       {
        for (J=0; J<N; J++)
            printf("%7d", matrice[I][J]);
        printf("\n");
       }
    }
     
    main()
    {   
     int choix,*tab,I,N,J,**matrix; 
     
     
    do
    {
    printf("            ==============================================\n");
    printf("                  ***              Menu           ***     \n");
    printf("            ==============================================\n \n");
    printf("                  1-Creation de la matrice                \n");
    printf("                  2-Afficher la matrice                   \n");
    printf("                  0-quitter                               \n \n");
    printf("            ==============================================\n \n");
    printf("choix : ");
    scanf("%d",choix);
    switch(choix)
    {
    case 1 :
            {    
                printf("Entrer le nombre des noeuds: \n");
                scanf("%d", &N );
                if(N < 50)                        
                    matrix=creation(N,matrix);
                else
                    printf("Vous avez depassé le nombre maximum des noeuds accordé");
                }break;
    case 2 :
                   affichage(N,matrix);
                   break;
                 }
    }while(choix!=0);      
    system("pause");
     return 0;
    }

  5. #5
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Citation Envoyé par sub-0
    j'ai déjà essayé sans caster malloc mais ça me donne une erreur de conversion de type,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    invalid conversion from `void*' to `int**'
    Cela veut dire que tu compiles en C++ !
    Citation Envoyé par sub-0
    Ça y est c'est fait le problème est réglé, hors quand j'ai organisé les fonctions dans un menu le problème est revenu
    Tu utilises très mal la fonction scanf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    scanf("%d",&matrice[I][J]);
    <...>
    printf("%7d", matrice[I][J]);
    <...>
    scanf("%d",&choix);
    il semble aussi que la variable N doit être initialisée.

  6. #6
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut
    D'abord je tiens à te remercier.
    Oui, effectivement je compile avec devC++, et comme tu vois je suis un débutant . Et encore merci pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon programme ne trouve pas le package jt400
    Par Greg.shogun dans le forum JDBC
    Réponses: 2
    Dernier message: 11/05/2007, 11h21
  2. Réponses: 3
    Dernier message: 16/04/2007, 18h01
  3. Mon programme ne marche pas aprés le if:?
    Par mitherkiller dans le forum C
    Réponses: 28
    Dernier message: 28/03/2007, 20h47
  4. Mon programme ne fonctionne pas
    Par phil23 dans le forum C
    Réponses: 4
    Dernier message: 22/03/2007, 17h31
  5. Sos mon programme ne marche pas
    Par monalisa_dulouvre dans le forum C
    Réponses: 49
    Dernier message: 26/12/2006, 19h35

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