Probleème avec l'initialistion d'un tableau

Fermé
khenchela - 19 déc. 2007 à 00:34
 le père - 19 déc. 2007 à 08:57
Bonjour,
voila j'ai un petite problème avec l'initialisation de mon tableau , je vous explique le problème
on a un tableau de 3 dimension appelé tab et de taille 9*9*9
les donnée tab[i][j] et un tableau de taille 9contenant touts les information concernant la case de la ligne i et de la colonne j du sudoku
trois valeurs sont possibles pour tab[i][j][k]
0 si chiffre k+1 et interdit dans la case (i,j)
1 si chiffre k+1 et possible dans la case (i,j)
2 si chiffre k+1 et sûr dans la case (i,j)
pour l'initialisation
ils nous demande décrire une fonction void initsudoku(int tab[9][9][9]) qui prend en paramètre un tableau vide T(qui sera remplacer par tab lors de l'appel à la fonction) on demande à l'utilisateur d'entre les valeurs du sudoku (ligne par ligne,en séparant les valeurs par des espaces) après on remplit ce tableau avec ces valeurs,et la valeurs 0 correspond à des case vide dans ce sudoku
ils nous demandent de remplire le tableau T just avec les valeurs de départ
exp si l'utilisature rentre la valeurs 5 en ligne 1 et colonne 2 alors on sait que tab[1][2}=[0,0,0,0,2,0,0,0,0]
et décrire un fonction printsudoku(int tab[9][9][9]) qui prend en paramètre un tableau T(qui sera remplacer par tab lors de l'appel à la fonction) et imprime le sudoku correspondant sous forme de tableau à deux dimension

voila mon programme que j'ai écrit

#include <stdio.h>
#include <stdlib.h>
void initsudoku(int tab[9][9][9]) // lecture des valeurs
{
int i,j,k,tab1[9][9];
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
for(k=0;k<9;k++){
tab[i][j][k]=1;
}
}
}


for(i=0;i<9;i++)


printf("entrer les valeurs de la ligne %d separais par un espace \n",i+1);
for(j=0;j<9;j++)
scanf("%d",&tab1[i][j]);
k=tab1[i][j];
if (k>0)
{
tab[i][j][k-1]=2;
}



void printsudoku(int x, int y,int tab[9][9][9]) // not completed yet
{
int k;
for (x=0;x<9;x++)
{
for(y=0;y<9;y++)
for(k=0;k<9;k++)
if(tab[x][y][k]==2)
printf("| %d |",k+1);
printf("\n");
}

}
int main()
{
int tab[9][9][9];
int i,j;
initsudoku(tab);
printsudoku(i,j,tab);
}
mon problème et que la partie initialisation marche mais quand je rajoute la partie printsudoku le programme bloc
il m'affiche un message d'erreur (printsudoku n'est pas initialiser) donc je voudrai vous demander qu'es que vous pensez de mon programme et si vous pouvez m'aider à résoudre le problème
et merci d'avance de votre aide

1 réponse

Bonjour,

J'ignore quel compilateur tu utilises, mais je suis étonné que la partie initilisation marche. Il y a de gros problèmes d'accolades { }.
Au moins une fermante avant le void printsudoku, une paire pour le for i de la saisie et une paire pour le for j de l'analyse de la saisie

D'autre part, à quoi servent le i et le j dans ton main et comme paramètres de ta fonction printsudoku ?
0