Sudoku - C - tableau

Juju -  
 Juju -
Bonjour,

J'aimerais écrire un programme en language C qui permet 'initialiser un tableau à 1 dimension de 81 éléments avec des valeurs aléatoires entre 0 et9.
IL faut utiliser je pense les deux fonctions de stdlib.h : srand(int seed); qui initialise de
générateur de nombres pseudo-aléatoires et int rand(); qui retourne un entier entre 0 et
INT_MAX

quelqun a une idée car je ne sais du tout comment faire pour remplir aléatoirement le tableau ...

merci d'avance les amies
Configuration: Windows XP
Firefox 2.0.0.12

20 réponses

  1. Mahmah Messages postés 497 Statut Membre 125
     
    Bonjour,

    Pourquoi ne pas faire un tableau à deux dimensions ?
    int tableau[9][9];
    int iLigne;
    int iColonne;
    
    /*
    Initialisation du tableau...
    */
    
    
    
    // affichage:
    
    for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
    {
       for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque case(/colonne) de la ligne courante
       {
          if ( tableau[iLigne][iColonne] != 0 )
          {
             printf( " %d ", tableau[iLigne][iColonne] );
          }
          else
          {
             printf( "   " );
          }
          printf( "\n" ); // retour à la ligne
       }
    }
    


    Y a moyen de faire plus beau en dessinant une belle grille avec des caractères ASCII.
    Table ASCII les caractères 185 à 188 et 200 à 206.

    M.
    1
    1. juju
       
      Pourquoi ne pas faire un tableau à deux dimensions ?

      -> parce que un sudoku a trois dimension

      meric pour ce que t'a fais je vais étudier ca
      0
      1. Mahmah Messages postés 497 Statut Membre 125 > juju
         
        trois dimensions ?

        Je ne vois que lignes et colonnes, tu souhaiterais un tableau du genre:

        int tableau[9][9][Z]; ?
        Quelle est la troisième ?

        M.
        0
  2. Mahmah Messages postés 497 Statut Membre 125
     
    A partir de la première version de afficher_grille cela devrait être plus simple. Pour générer des grille on a pas besoin que ce soit beau.

    Je n'ai pas cherché plus loin mais l'idée d'afficher séparément les trois éléments me parait bizarre, surtout que l'affichage dans la console ne se fait que de gauche à droite puis de haut en bas. (Ligne par ligne en somme)

    Aller hop! Je te regarde faire! ^^

    void afficher_ligne( int grille[9][9], unsigned int iLigne )
    {
    
    
    }
    
    void afficher_colonne( int grille[9][9], unsigned int iColonne )
    {
    
    
    }
    
    // 0 <= iLigneRegion <= 2
    // 0 <= iColonneRegion <= 2
    void afficher_region( int grille[9][9], unsigned int iLigneRegion, unsigned int iColonneRegion )
    {
    
    
    }
    


    M.
    1
    1. juju
       
      en fait je pars de ce programme car j'ai pas appris les fonctions encore ( on nous a jsuté donné la fonction main sans onus expliqué )

      #include <stdio.h>
      #include <time.h>
      #include <stdlib.h>

      int main()
      {
      int tableau[9][9];
      int iLigne;
      int iColonne;

      srand( (unsigned int) time(NULL) );

      for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
      {
      for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
      {
      tableau[iLigne][iColonne] = rand()%10;
      }
      }


      for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
      {
      for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
      {
      if ( tableau[iLigne][iColonne] != 0 )
      {
      printf( " %d ", tableau[iLigne][iColonne] );
      }
      else
      {
      printf( " " );
      }

      }
      printf( "\n" ); // retour à la ligne

      }
      getchar();
      return 0;
      }
      0
  3. vlmath Messages postés 833 Statut Contributeur 160
     
    Salut,

    C'est relativement simple : il te suffis de parcourrir le tableau, et de mettre dans chaque case une valeur :

    srand( time(NULL) );
    for( i=0; i<81; i++ ) // Parcours du tableau
    {
       tableau[i] = rand()%10 +1; // Genere un nombre aleatoir entre 0 et 9 et ajoute 1
    }


    @Bientôt
    0
  4. greenthumb
     
    problème : dans ce cas là il n'y aura aucune case à 0, alors pourquoi ajouter 1 ? :S
    0
    1. Juju
       
      Ah ok

      En fait ce que j'aimerais c'est réaliser une grille de sudoku

      je pense qu'il faudrait modifier le programme pour qu'il affiche le tableau selon la représentation habituelle d'un grille de S udoku , c'est a dire 9 carrés contenant eux-mêmes 9 carrés ( 9 chiffres tous différents )

      soit en résumé une grille de 9 sur 9 chiffres et faire en sorte que seuls les chiffres différents de 0 soient affichés , le 0 apparaissant comme une case vide

      Le porbléme c'est que je suis nulle en C ( mais une fois que j'aurai le programme je pourrais faire des grilles plus ou moins difficile pour mes amies )

      meric d'avance
      0
      1. Juju > Juju
         
        srand( time(NULL) );
        for( i=0; i<81; i++ ) // Parcours du tableau
        {
        tableau[i] = rand()%10 +1; // Genere un nombre aleatoir entre 0 et 9 et ajoute 1
        }

        dans le compilateur j'ai mis ::
        int main (void)
        {
        int tableau , i ;
        srand( time(NULL) );
        for( i=0; i<81; i++ ) // Parcours du tableau
        {
        tableau[i] = rand()%10 +1; // Genere un nombre aleatoir entre 0 et 9 et ajoute 1
        }

        mais il me met une erreur (
        subscripted value is neither array nor pointer et
        parse error at end of input )
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vlmath Messages postés 833 Statut Contributeur 160
     
    Ta variable tableau n'est pas un tableau de int ...

    int tableau[], i;
    0
    1. juju
       
      j'ai mis ca :

      #include <stdio.h>
      #include <stdlib.h>

      int rand ()
      {
      int tableau[90], i;
      srand( time(NULL) );

      for( i=0; i<81; i++ ) // Parcours du tableau
      {
      tableau[i] = rand()%10 +1; // Genere un nombre aleatoir entre 0 et 9 et ajoute 1

      }
      return(0)
      }

      ca me met
      parse error before `}' ( a la derniere ligne )
      0
      1. juju > juju
         
        personne n'a une solution aux probléme , ca doit etre une erreur de parenthése , non ?
        0
  7. amigo
     
    Salut,

    il manque un point-virgule

    }
    return(0); /*<--------------*/
    }
    0
    1. juju
       
      MERCI BEAUCOUP AMIGO

      Par contre est ce que quelqun sait -comment afficher le tableau dans un compilateur

      et - modifiez le programme que j'ai fais pour qu'il affiche le tableau sous forme de 9 carrées

      merci d'avance
      0
      1. juju > juju
         
        alors personne n'a une idée ? amigo ?
        0
  8. eau_douce Messages postés 4 Statut Membre
     
    bonjoure
    ben j'ai le programme de sudoku qi permet de controler les lignes et les colonnes et la region et qui permet de donner la solution avec backtraking si tu a bien cassé la tête j peu te donner la réponse :)
    0
  9. Mahmah Messages postés 497 Statut Membre 125
     
    Quelqu'un m'avait demandé une petite explication sur le back-tracking, je mets le lien mais si j'ai bien compris tu souhaites seulement pouvoir générer des grilles sans pouvoir jouer ou obtenir la solution.

    M.
    0
    1. juju
       
      Oui voila mahmah je veux juste cré des grilles soduku

      mais je voudrais séparés le tableau en 9 carrés
      0
      1. Mahmah Messages postés 497 Statut Membre 125 > juju
         
        Ah ok, plus du style:

        int tableau[3][3][3][3]; // 3 lignes sur 3 colonnes de "pâtés" de 3 sur 3 cases.

        Pourquoi pas après tout. Je pense que ça complique un petit peu, je trouve plus naturel de dire la case (7,2) que la case (3,1,1,2).

        On peut simplifier un mini poil avec


        typedef int Carre[3][3];
        Carre lesCarres[3][3];

        Mais l'accès reste du type lesCarres[3][1][1][2];

        M.
        0
  10. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    un sudoku générer aléatoirement ?? j'y crois pas trop sur le fonctionnement.
    Je ne comprends pas trop ce que tu veux faire.
    pour afficher sous forme de carré, il faut se prendre la tête pour utiliser le printf et afficher les éléments dans le bon sens sachant que le printf écrit de gauche à droite et de haut en bas.
    0
    1. Juju
       
      C'est bon j'ais fais le début

      # include < stdio.h >
      #include<time.h>
      #include<stdlib.h>

      int main ( ) {

      int i;
      int tableau[81];
      int rand () ;

      srand( time(NULL) );
      i=0;
      while ( i<81 )
      {
      tableau[i] = rand()%10 +1;
      i++;
      }
      i=0
      while ( i< 81 )
      {

      printf ( "%d " , tableau[i] );
      if ( i%9==8) {
      printf("/n");
      i++
      }
      return(0);
      }


      le programme marche MAINTENANT :

      Modifiez le programme pour qu'il affiche le tableau selon la représentation habituelle d'une grille
      de Sudoku, c'est à dire 9 carrés (9 régions) contenant eux-mêmes 9 carrés (9 chiffres tous
      différents), soit une grille de 9 sur 9 chiffres.

      et faire en sorte que seuls les chiffres différents de 0 soient affichés, le 0 apparaissant comme une
      case vide.

      Si quelqun a une idée pour modifier mon programme initiale ( ca m'est égal finalement que ca soit a 2 dimensions ou pas )

      MERCI DAVANCE ^_-
      0
  11. Mahmah Messages postés 497 Statut Membre 125
     
    Re ^^

    Et bien la solution à deux dimensions est un peu au dessus, celle à une dimension ressemble beaucoup, il n'y a que l'accès à la valeur qui change

    tableau[ iLigne * 9 + iColonne ]

    Si toutefois tu souhaites stocker les lignes les unes à la suite des autres...

    Tu auras le temps de voir cela après mais comme le disait Char Snipeur ci-dessus, la génération automatique demandera un petit peu de travail aussi. Pas grand chose, juste de quoi assurer que la grille est cohérente. Il faudra encore un petit peu de travail pour s'assurer qu'une solution est trouvable par déduction. (on dira humainement)

    M.
    0
    1. juju
       
      Mais genre quelqun ne pourrais pas essayer d'incruster ce qu'a fais mahmah dans mon programme car je maitrise pas du tout les matrices ( je vias essayer de faire un truc vite fais )

      ca ferais un truc du genre tableau[i][j]
      0
      1. juju > juju
         
        En fait j'aimerais savoir dans le programme :

        # include < stdio.h >
        #include<time.h>
        #include<stdlib.h>

        int main ( ) {

        int i;
        int tableau[81];
        int rand () ;

        srand( time(NULL) );
        i=0;
        while ( i<81 )
        {
        tableau[i] = rand()%10 +1;
        i++;
        }
        i=0
        while ( i< 81 )
        {

        printf ( "%d " , tableau[i] );
        if ( i%9==8) {
        printf("/n");
        i++
        }
        return(0);
        }


        int tableau[9][9];
        int iLigne;
        int iColonne;

        /*
        Initialisation du tableau...
        */



        // affichage:

        for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
        {
        for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque case(/colonne) de la ligne courante
        {
        if ( tableau[iLigne][iColonne] != 0 )
        {
        printf( " %d ", tableau[iLigne][iColonne] );
        }
        else
        {
        printf( " " );
        }
        printf( "\n" ); // retour à la ligne
        }
        }


        COMMENT INTEGRER TON PROGRAMME DANS LE MIEN ?
        0
  12. Mahmah Messages postés 497 Statut Membre 125
     
    D'ailleurs je m'étais planté, je faisais un retour à la ligne à chaque nombre affiché et non pas tous les neuf chiffres.

    
    int tableau[9][9];
    int iLigne;
    int iColonne;
    
    /*
    Initialisation du tableau...
    */
    
    
    
    // affichage:
    
    for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
    {
       for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
       {
          if ( tableau[iLigne][iColonne] != 0 )
          {
             printf( " %d ", tableau[iLigne][iColonne] );
          }
          else
          {
             printf( "   " );
          }
    
       }
       printf( "\n" ); // retour à la ligne
    }
    


    M.
    0
    1. Juju
       
      Meric mahmah mais j'aimerais intégrer ton programme dans le mien de sorte que mon d'affiche selon la représentation habituelle d'une grille de sudoku et faire en sorte que le 0 apparaise come une case vide

      j'avais pensé à :

      # include <stdio.h>
      #include<time.h>
      #include<stdlib.h>

      int main ( ) {

      int i;
      int tableau[9][9];
      int iLigne;
      int iColonne;
      int rand () ;

      srand( time(NULL) );
      i=0;
      while ( i<81 )
      {
      tableau[iLigne][iColonne] = rand()%10;
      i++;
      }
      i=0

      while ( i< 81 )
      {

      printf ( "%d " ,tableau[iLigne][iColonne] );
      if ( i%9==8) {
      printf("/n");
      i++
      }

      for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
      {
      for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
      {
      if ( tableau[iLigne][iColonne] != 0 )
      {
      printf( " %d ", tableau[iLigne][iColonne] );
      }
      else
      {
      printf( " " );
      }

      }
      printf( "\n" ); // retour à la ligne
      }
      return (0 )
      }
      0
  13. Mahmah Messages postés 497 Statut Membre 125
     
    Bah alors, on poste un code qui compile pas ? Il manque des ";" etc.

    J'ai taillé dans le code, une fois le choix fait entre un tableau de 81 ou un tableau de 9 par 9, la moitié des boucles ne servaient plus. J'ai aussi déplacé le code d'affichage dans une autre fonction. Tu pourras faire de même avec l'initialisation afin d'avoir un code plus clair.

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    
    void afficher_grille( int grille[9][9] )
    {
    	int iLigne;
    	int iColonne;
    
    	for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
    	{
    		for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
    		{
    			if ( grille[iLigne][iColonne] != 0 )
    			{
    				printf( " %d ", grille[iLigne][iColonne] );
    			}
    			else
    			{
    				printf( "   " );
    			}
    
    		}
    		printf( "\n" ); // retour à la ligne
    	}
    }
    
    int main()
    {
    	int tableau[9][9];
    	int iLigne;
    	int iColonne;
    
    	srand( (unsigned int) time(NULL) );
    
    	for ( iLigne = 0 ; iLigne != 9 ; iLigne++ ) // pour chaque ligne...
    	{
    		for ( iColonne = 0 ; iColonne != 9 ; iColonne++ ) // Pour chaque colonne de la ligne courante
    		{
    			tableau[iLigne][iColonne] = rand()%10;
    		}
    	}
    
    	afficher_grille( tableau );
    
    	getchar();
    	return 0;
    }
    


    La grille est bien aléatoire mais pas forcément correcte :-/

    M.
    0
  14. Mahmah Messages postés 497 Statut Membre 125
     
    Nouvelle version de l'affichage, c'est cadeau!

    void afficher_ligne( int ligne[9] )
    {
    	unsigned int iColonne;
    
    	for ( iColonne = 0 ; iColonne != 9 ; iColonne++ )
    	{
    		if ( ( iColonne % 3 ) == 0 )
    			printf( "\xBA" );
    	
    		if ( ligne[iColonne] != 0 )
    		{
    			printf( " %d ", ligne[iColonne] );
    		}
    		else
    		{
    			printf( "   " );
    		}
    	}
    	printf( "\xBA\n" );
    }
    
    void afficher_grille( int grille[9][9] )
    {
    	int iLigne;
    
    	printf( "\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCB\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCB\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n" );
    	for ( iLigne = 0 ; iLigne != 3 ; iLigne++ )
    		afficher_ligne( grille[iLigne] );
    	printf( "\xCC\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCE\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCE\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xB9\n" );
    
    	for (  ; iLigne != 6 ; iLigne++ )
    		afficher_ligne( grille[iLigne] );
    	printf( "\xCC\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCE\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCE\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xB9\n" );
    
    	for (  ; iLigne != 9 ; iLigne++ )
    		afficher_ligne( grille[iLigne] );
    	printf( "\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCA\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCA\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n" );
    }
    


    ^^
    M.

    PS:
    Pense aux balises < code> < /code> entre le bouton souligné et le bouton lien.
    0
    1. juju
       
      T'es magique mahmah merci beaucoup

      j'ai encore trop de chose à faire si tu passes un de ces jours jette un coup d'oeil à ce que je fais
      0
  15. juju
     
    En fait maintenant j'aimerais écrire 3 programes

    dont un un programe qui permet d'afficher uniquement la i-ème ligne.

    un autre qui permet d'afficher uniquement la j-ème colonne.

    et enfin un programe qui permet d'afficher uniquement la n-ème région dont le numéro est

    donné par l'utilisateur.

    ( il faut partir du programme qu'on a fait je pense )
    0
  16. Mahmah Messages postés 497 Statut Membre 125
     
    Allons allons...

    Les fonctions tu en utilises déjà plein, il n'y a plus qu'à écrire les tiennes. (En plus tu as mon exemple)

    une fonction peut être déclarée et doit être définie.

    La déclaration c'est que tu vois partout, dans stdio.h il n'y a que ça par exemple. C'est dire voilà, il y a une fonction qui existe et qui ressemble à ça. A partir de ce moment elle devient utilisable même si elle n'est pas encore connue complètement. On appelle aussi ça la "déclaration courte". En pratique cela consiste en la reprise du prototype de la fonction (-> [type de la valeur de retour] + nom + types des paramètres) sauf qu'on le termine par un ; au lieu de la définir.

    void afficher_ligne( int grille[9][9], unsigned int iLigne );

    A partir de maintenant je peux écrire du code qui appelle cette fonction car on connaît tous les élément nécessaires à son utilisation.

    Cela sert aussi quand on veut écrire deux fonction qui s'appelle l'une l'autre. Il faut nécessaire que chacune soit écrit avant l'autre donc pour éviter ce problème insoluble (même avec un bon solvant. Oups désolé...) -> déclaration courte et hop, ça marche.

    Il n' y a pas vraiment de piège dans les fonctions. Le seule truc à savoir c'est que les paramètres sont passés par copie. (/par valeur)
    int GetNumberPlusOne( int n )
    {
       return n + 1;
    }
    
    void GetNumberPlusTwo( int n ) // interdiction d'avoir le même nom en C.
    {
       n = n + 2;
    }
    
    
    void GetNumberPlusThree( int *pN ) // interdiction d'avoir le même nom en C.
    {
       *pN = *pN + 3;
    }
    


    La première marche.
    La deuxième ne fait rien car n est une copie de la valeur passée en paramètre et on ne modifie que la copie interne à la fonction.
    La troisième est un passage par pointeur (/par adresse dira-t-on plus élégamment) La valeur passée par copie est une adresse mémoire. Connaissant cette adresse on peut modifier l'entier qui se trouve à cette adresse. Donc ça marche.

    Autre intérêt de passer un paramètre par adresse : Si on a définit une structure de 400 octects, on ne les recopie pas à chaque appelle de fonction ou récupération de la valeur de retour.

    Voilà, plus d'excuse! ^^
    (En plus je les avais préparées avec amour)

    M.
    0
  17. Juju
     
    j'arrive pas à trouver les erreur dans ce programme

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>

    typedef struct

    {
    int valeur;
    int candidats[9];
    int size;
    }
    Case ;

    typedef Case grille[9][9];

    int main () {

    int grille g;
    int ligne;
    int colonne;
    int i;
    int j;

    i=0;
    printf ( " donnez les valeurs " );
    for ( i=0; i<8; i++ )
    for ( j=0; j<8; j++ ) {

    scanf ( "%d" , &g[i][j].val );

    if g[i][j].val=0

    { g[i][j].size=0 }

    else {

    g[i][j].size=9

    }

    return (0);
    }
    0
  18. Mahmah Messages postés 497 Statut Membre 125
     
    Tu as déclaré g avec deux types, int et grille.

    Il manque quelques ';' des "valeur" à la place de "val" et une ligne est bizarre:

    if g[i][j].val=0

    Je suppose que c'est

    if ( g[i][j].valeur == 0 )

    Voilou ^^
    M.
    0
    1. Juju
       
      en fait j'ai 2 erreur au niveau de cette partie :

      if (g[i][j].valeur == 0)
      {g[i][j].size=0}
      else {g[i][j].size=9}

      ca me met : ( 2 erreur j'ai )
      parse error before `}'

      merci beaucoup pour ton aide mahmah
      0
  19. Mahmah Messages postés 497 Statut Membre 125
     
    C'est l'accolade du for précédent qui n'est pas refermée.

    Il manque deux ; aussi pour tes instructions qui sont dans les { }

    M.
    0
    1. Juju
       
      Je suis vraiment trop nulle mais je n'y arrive pas

      #include <stdio.h>
      #include <time.h>
      #include <stdlib.h>

      typedef struct

      {
      int val;
      int candidats[9];
      int size;
      }
      Case ;

      typedef Case grille[9][9];

      int main () {

      grille g;
      int ligne;
      int colonne;
      int i;
      int j;

      i=0;
      printf ( " donnez les valeurs " );
      for ( i=0; i<8; i++ ) {
      for ( j=0; j<8; j++ ) {

      scanf ( "%d" , & g[i][j].val );

      if ( g[i][j].val == 0 )
      { g[i][j].size = 0 } <-------- parse error before `}'

      else { g[i][j].size=9 } <--------- parse error before `}'

      }
      }
      return (0);
      }


      ça me met toujours 2 erreurs aux fléches que j'ai mise ( pourtant j'ai vérifié les acolades ... )
      0
  20. Mahmah Messages postés 497 Statut Membre 125
     
    Ah, oui. Mais le compilateur est très joueur. ^^

    C'est les ;

    	if ( g[i][j].val == 0 )
    	{
    		g[i][j].size = 0 ;
    	}
    	else
    	{
    		g[i][j].size = 9 ;
    	}
    


    Il y en a toujours sauf dans les conditions (dans le if, le while) et au bout du for ou d'un while. Par contre il y en a un à la fin d'un do { ... } while ( ... ) ;

    Il n'y a pas à dire que t'es nulle. Ca ne se devine pas et le compilateur est pas trop sympa en général. Il faut apprendre à moitié dans un cours/livre/site internet et à moitié en pratiquant.

    M.

    EDIT. :
    J'ai croisé la page de CCM sur les fonctions. ;-)
    Pas de panique, moi non plus je n'ai pas compris leur intro ! ^^"
    0
    1. Juju
       
      t'es trop fort ca marche , merci encore je t'adore
      0