Bonjour, je viens solliciter votre aide pour un problème probablement idiot, mais que je m'échine à régler depuis deux heures.
Problème : Je code actuellement un Sudoku (sans interface graphique, uniquement affiché avec des printf), je dois donc avoir recours à des tableaux. J'ai une fonction qui prend en paramètre un tableau à deux dimension de 9 par 9 initialisé à 0, et qui me retourne, normalement, une grille remplie avec des nombres.
Sauf que, lorsque je veux afficher la grille remplie dans mon programme principal, j'ai une erreur à l'endroit de mon printf, qui me dit "error, subscipted value is neither array nor pointer nor vector".
Ma fonction main :
Et la fonction qui est sensé me retourner la grille remplie :
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 int main() { int grille[9][9]; int j; int i; for(i=0;i<9;i++) { for(j=0;j<9;j++) { printf("%i", grille[i][j]); } printf("\n"); } int grille2; grille2 = Plateau(grille); #J'appelle la fonction pour remplir la grille, voir ci-dessous for(i=0;i<9;i++) { for(j=0;j<9;j++) { printf("%i", grille2[i][j]); } printf("\n"); } }
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 int Plateau(int grille[9][9]) { int nbrand = rand()%(8)+1; int i; int j; int condition; int colonne; int ligne; int carre; for(i=0;i<9;i++) { for(j=0;j<9;j++) { roll: { r = rand()%9 + 1; grille[i][j] = r; printf("%i", r); colonne = TestColonne(grille[9][9],i,j); ligne = TestLigne(grille[9][9],i,j); carre = TestCarre(grille[9][9],i,j); if(colonne == 1 || carre == 1 || ligne == 1) #1 signifie que la condition n'est pas remplie et qu'il faut donc relancer le random pour obtenir un autre nombre. { goto roll; } } } } return grille[9][9]; }
C'est surement une erreur idiote, mais je suis plus familiarisé avec le python qui est moins embêtant avec les déclarations de variables et leur type. Merci d'avance !
Partager