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 :

Le type du paramètre formel 1 est incomplet


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut Le type du paramètre formel 1 est incomplet
    j'ai plusieurs messages d'erreur dans mon code mais je n'arrive pas a trouver pourquoi !!!!
    merci d'avance pour votre aide qui me serait tres precieuse


    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
    #include <stdio.h>
     
     
    void afficher( int grille[][] )
    {
    int i,j,x,y;
    printf("\n\n\n");
    for( i = 0 ; i <= x ; i++ )
    {
          for ( j = 0 ; j < 5*y ; j++)
          {
                    printf("-");
          }
          printf("\n");
     
          for ( j = 0 ; j <= y ; j++ )
          {
                    printf("| %i ",grille[i][j]);
     
          }
          printf("|\n");
    }
    for( j = 0 ; j < 5*y ; j++ )
    {
            printf("-");
    }
    printf("\n\n\n");
    }
     
     
    int main(int argc, char *argv)
    {
    int i,j,x,y;
    x=3;
    y=5;
    int grille[x][y];
    for( i = 0 ; i <= x ; i++)
    {
            for( j = 0 ; j <= y ; j++)
            {
                    grille[i][j]=1;
            }
    }
    grille[0][3]=0;
    grille[0][5]=0;
    grille[1][1]=0;
    grille[1][4]=0;
    grille[3][0]=0;
     
    afficher(grille[][]);
    return 0;
    }
    generateur_grille.c:4: erreur: les éléments du tableau sont de type incomplet
    generateur_grille.c: Dans la fonction «main» :
    generateur_grille.c:52: erreur: expected expression before «]» token
    generateur_grille.c:52: erreur: le type du paramètre formel 1 est incomplet

  2. #2
    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 KaNDeL Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void afficher( int grille[][] )
    Pas du C...

    http://emmanuel-delahaye.developpez.....htm#param_tab

    Ceci est correct. Attention, je rappelle que les indices valides d'un tableau de N éléments vont de 0 à N-1.
    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
     
    #include <stdio.h>
    #include <assert.h>
     
    enum
    { X = 3, Y = 5 };
     
    void afficher (int grille[X][Y])
    {
       int i, j;
       printf ("\n\n\n");
       for (i = 0; i < X; i++)
       {
          for (j = 0; j <= 5 * Y; j++)
          {
             printf ("-");
          }
          printf ("\n");
     
          for (j = 0; j < Y; j++)
          {
             assert (i < X);
             assert (j < Y);
     
             printf ("| %i ", grille[i][j]);
     
          }
          printf ("|\n");
       }
       for (j = 0; j < 5 * Y; j++)
       {
          printf ("-");
       }
       printf ("\n\n\n");
    }
     
    int main (void)
    {
       int i, j;
       int grille[X][Y];
       for (i = 0; i < X; i++)
       {
          for (j = 0; j < Y; j++)
          {
             assert (i < X);
             assert (j < Y);
             grille[i][j] = 1;
          }
       }
       grille[0][3] = 0;
       grille[0][5] = 0;
       grille[1][1] = 0;
       grille[1][4] = 0;
       grille[3][0] = 0;
     
       afficher (grille);
       return 0;
    }
    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
     
     
     
     
    --------------------------
    | 1 | 1 | 1 | 0 | 1 |
    --------------------------
    | 0 | 0 | 1 | 1 | 0 |
    --------------------------
    | 1 | 1 | 1 | 1 | 1 |
    -------------------------
     
     
     
    Process returned 0 (0x0)   execution time : 0.050 s
    Press any key to continue.
    Je ne suis pas sûr que la présentation soit celle que tu attends, mais je te laisse corriger.

    Nota : si on ne te l'a pas demandé expressément, ne perd pas ton temps en présentation...

    Ceci est clair pour tout le monde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     1  1  1  0  1 
     0  0  1  1  0 
     1  1  1  1  1
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void afficher( int grille[][])
    On ne peut pas passer un tableau comme ça à une fonction, on ne peut se passer que de la première dimension.

    FAQ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void afficher( int grille[][5])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int i,j,x,y;
    x=3;
    y=5;
    int grille[x][y];
    x et y ne sont pas constants.
    Il aurait fallu écrire :

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    j'arrive a compiler mais un probleme persiste : quand je l'execute rien n'apparaie a part une "ligne de saisie"

    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
    #include <stdio.h>
     
    enum
    { x = 3 , y = 5 };
     
    void afficher( int grille[x][y] )
    {
    int i,j;
    printf("\n\n\n");
    for( i = 0 ; i <= x ; i++ )
    {
          for ( j = 0 ; j < 5*y ; j++)
          {
                    printf("-");
          }   
          printf("\n");
     
          for ( j = 0 ; j <= y ; j++ )
          {   
                    printf("| %i ",grille[i][j]);
     
          }   
          printf("|\n");
    }
    for( j = 0 ; j < 5*y ; j++ )
    {
            printf("-");
    }
    printf("\n\n\n");
    }
     
     
    int main(int argc, char *argv)
    {
    int i,j;
    int grille[x][y];
    for( i = 0 ; i <= x ; i++)
    {
            for( j = 0 ; j <= y ; j++)
            {
                    grille[i][j]=1;
            }
    }
    grille[0][3]=0;
    grille[0][5]=0;
    grille[1][1]=0;
    grille[1][4]=0;
    grille[3][0]=0;
     
    afficher(grille);
     
    return 0;
    }

  5. #5
    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 KaNDeL Voir le message
    j'arrive a compiler mais un probleme persiste : quand je l'execute rien n'apparaie a part une "ligne de saisie"
    ce n'est pas mon code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    -------------- Build: Debug in hello ---------------
     
    Compiling: main.c
    Linking console executable: bin\Debug\hello.exe
    C:\dev\hello\main.c:34: warning: second argument of 'main' should be 'char **'
    C:\dev\hello\main.c:33: warning: unused parameter 'argc'
    C:\dev\hello\main.c:33: warning: unused parameter 'argv'
    Output size is 19.43 KB
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 3 warnings
    Ce code produit :
    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
     
     
     
     
    -------------------------
    | 1 | 1 | 1 | 0 | 1 | 0 |
    -------------------------
    | 0 | 0 | 1 | 1 | 0 | 1 |
    -------------------------
    | 1 | 1 | 1 | 1 | 1 | 0 |
    -------------------------
    | 0 | 1 | 1 | 1 | 1 | 1 |
    -------------------------
     
     
     
    Process returned -1073741819 (0xC0000005)   execution time : 4.255 s
    Press any key to continue.
    chez moi, avec une sortie anormale...

    J'avais pourtant pris le temps de publier une correction et une explication
    Attention, je rappelle que les indices valides d'un tableau de N éléments vont de 0 à N-1.
    Je me demande si ça sert à quelque chose si tu ne lis pas les réponses... J'efface tout ?
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    non je me suis servi de ton code mais il y a des lignes que je ne comprends pas trop en faite telle que : assert ( )

  7. #7
    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 KaNDeL Voir le message
    non je me suis servi de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for( i = 0 ; i <= x ; i++)
    {
            for( j = 0 ; j <= y ; j++)
            {
                    grille[i][j]=1;
            }
    }
    Ceci n'est pas mon code...
    mais il y a des lignes que je ne comprends pas trop en faite
    Si tu ne comprends pas, tu poses la question. Je ne sais pas ce que tu sais.
    telle que : assert ( )
    http://emmanuel-delahaye.developpez....tes.htm#assert
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Limiter les types des paramètres templates?
    Par Pragmateek dans le forum C++
    Réponses: 9
    Dernier message: 29/08/2006, 13h14
  2. Réponses: 2
    Dernier message: 27/06/2006, 15h21
  3. Réponses: 4
    Dernier message: 20/05/2006, 21h41
  4. Réponses: 1
    Dernier message: 06/09/2005, 14h29
  5. paramètre formel et paramètre courant !
    Par Aioros dans le forum C
    Réponses: 6
    Dernier message: 03/09/2005, 02h35

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