Rechercher : dans
Par :

Sudoku - C - tableau

Dernière réponse le 7 avr 2008 à 21:47:29 Juju, le 23 mar 2008 à 20:20:51 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Sudoku C tableau » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les pointeurs en langage C VoirDéfinition d'un pointeur Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des...

1

vlmath, le 23 mar 2008 à 21:22:00

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

Répondre à vlmath

2

greenthumb, le 23 mar 2008 à 21:29:17

Problème : dans ce cas là il n'y aura aucune case à 0, alors pourquoi ajouter 1 ? :S

Répondre à greenthumb

3

Juju, le 24 mar 2008 à 12:52:53

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

Répondre à Juju

4

Juju, le 24 mar 2008 à 13:17:10

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 )

Répondre à Juju

5

vlmath, le 24 mar 2008 à 13:42:07

Ta variable tableau n'est pas un tableau de int ...

int tableau[], i;

Répondre à vlmath

6

juju, le 24 mar 2008 à 14:17:34

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 )

Répondre à juju

7

juju, le 24 mar 2008 à 20:22:37

Personne n'a une solution aux probléme , ca doit etre une erreur de parenthése , non ?

Répondre à juju

8

amigo, le 24 mar 2008 à 20:25:55

Salut,

il manque un point-virgule

}
return(0); /*<--------------*/
}

Répondre à amigo

9

juju, le 25 mar 2008 à 20:17:58

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

Répondre à juju

10

juju, le 25 mar 2008 à 20:47:01

Alors personne n'a une idée ? amigo ?

Répondre à juju

11

Mahmah, le 25 mar 2008 à 21:25:40
  • +1

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.

Répondre à Mahmah

12

juju, le 25 mar 2008 à 21:45:31

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

Répondre à juju

13

Mahmah, le 25 mar 2008 à 22:00:43

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.

Répondre à Mahmah

14

eau_douce, le 25 mar 2008 à 22:52:17

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 :)

Répondre à eau_douce

15

Mahmah, le 26 mar 2008 à 00:07:20

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.

Répondre à Mahmah

16

juju, le 26 mar 2008 à 06:47:20

Oui voila mahmah je veux juste cré des grilles soduku

mais je voudrais séparés le tableau en 9 carrés

Répondre à juju

17

Mahmah, le 26 mar 2008 à 10:02:41

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.

Répondre à Mahmah

18

Char Snipeur, le 26 mar 2008 à 12:19: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. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

19

Juju, le 27 mar 2008 à 20:03:23
  • +1

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 ^_-

Répondre à Juju

20

Mahmah, le 27 mar 2008 à 20:37:29

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.

Répondre à Mahmah

21

juju, le 28 mar 2008 à 22:54:09

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]

Répondre à juju

23

juju, le 28 mar 2008 à 23:33:43

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 ?

Répondre à juju

22

Mahmah, le 28 mar 2008 à 23:30:51

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.

Répondre à Mahmah

24

Juju, le 30 mar 2008 à 20:47:33

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 )
}

Répondre à Juju

25

Mahmah, le 30 mar 2008 à 21:18:44

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.

Répondre à Mahmah

26

Mahmah, le 30 mar 2008 à 21:53:29

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.

Répondre à Mahmah

27

juju, le 31 mar 2008 à 20:11:08

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

Répondre à juju

28

juju, le 1 avr 2008 à 10:56:05

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 )

Répondre à juju

29

Mahmah, le 1 avr 2008 à 20:00:04
  • +1

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.

Répondre à Mahmah

30

juju, le 1 avr 2008 à 20:05:41

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;
}

Répondre à juju

31

Mahmah, le 2 avr 2008 à 20:40:31

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.

Répondre à Mahmah

32

juju, le 3 avr 2008 à 20:32:19

Merci mahmah je vias lire tout ca

Répondre à juju

33

Juju, le 6 avr 2008 à 14:05:06

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);
}

Répondre à Juju

34

Mahmah, le 6 avr 2008 à 15:03:10

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.

Répondre à Mahmah

35

Juju, le 6 avr 2008 à 20:24:00

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

Répondre à Juju

36

Mahmah, le 6 avr 2008 à 20:42:10

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.

Répondre à Mahmah

37

Juju, le 7 avr 2008 à 20:17:34

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 ... )

Répondre à Juju