Sudoku - C - tableau

Fermé
Juju - 23 mars 2008 à 20:20
 Juju - 7 avril 2008 à 21:47
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

20 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
25 mars 2008 à 21:25
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125 > juju
25 mars 2008 à 22:00
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
1 avril 2008 à 20:00
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
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
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
23 mars 2008 à 21:22
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
problème : dans ce cas là il n'y aura aucune case à 0, alors pourquoi ajouter 1 ? :S
0
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
Juju > Juju
24 mars 2008 à 13:17
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
24 mars 2008 à 13:42
Ta variable tableau n'est pas un tableau de int ...

int tableau[], i;
0
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
juju > juju
24 mars 2008 à 20:22
personne n'a une solution aux probléme , ca doit etre une erreur de parenthése , non ?
0
Salut,

il manque un point-virgule

}
return(0); /*<--------------*/
}
0
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
juju > juju
25 mars 2008 à 20:47
alors personne n'a une idée ? amigo ?
0
eau_douce Messages postés 4 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 mars 2008
25 mars 2008 à 22:52
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
26 mars 2008 à 00:07
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
Oui voila mahmah je veux juste cré des grilles soduku

mais je voudrais séparés le tableau en 9 carrés
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125 > juju
26 mars 2008 à 10:02
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 mars 2008 à 12:19
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
27 mars 2008 à 20:37
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
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
juju > juju
28 mars 2008 à 23:33
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
28 mars 2008 à 23:30
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
30 mars 2008 à 21:18
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
30 mars 2008 à 21:53
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
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
2 avril 2008 à 20:40
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
merci mahmah je vias lire tout ca
0
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
6 avril 2008 à 15:03
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
6 avril 2008 à 20:42
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
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
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
7 avril 2008 à 20:38
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
t'es trop fort ca marche , merci encore je t'adore
0