begin process at 2012 05 29 20:04:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

problème avec l'initialision d'un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème avec l'initialision d'un tableau

mercredi 19 décembre 2007 à 00:24:12 | problème avec l'initialision d'un tableau

khen

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

<gras><souligne>voila mon programme que j'ai écrit </souligne></gras>

#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

mercredi 19 décembre 2007 à 17:02:54 | Re : problème avec l'initialision d'un tableau

sam20

Ton code manque de { }
ou mets tu cela?:
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;
       }
mercredi 19 décembre 2007 à 17:06:23 | Re : problème avec l'initialision d'un tableau

sam20

#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);
return 0;
}



Deja ca mais c'est pas fini.

mercredi 19 décembre 2007 à 17:50:50 | Re : problème avec l'initialision d'un tableau

sam20

#include <stdio.h>
#include <stdlib.h>
void initsudoku(int tab[9][9][9]) // lecture des valeurs
{
  int i,j,k,tab1[9][9];
char res[255]= {0};
for(i=0;i<9;i++){
 printf("entrer les valeurs de la ligne %d separé par un '-' \n",i+1);
//scanf("%d",&res);
 scanf("%s",res);

tab1[i][0]=res[0]-48;tab1[i][1]=res[2]-48;
tab1[i][2]=res[4]-48;tab1[i][3]=res[6]-48;
tab1[i][4]=res[8]-48;tab1[i][5]=res[10]-48;
tab1[i][6]=res[12]-48;tab1[i][7]=res[14]-48;
tab1[i][8]=res[16]-48;tab1[i][9]=res[18]-48;

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

mercredi 19 décembre 2007 à 23:14:39 | Re : problème avec l'initialision d'un tableau

khen

bonjour
merci de votre aide
jeudi 20 décembre 2007 à 00:33:49 | Re : problème avec l'initialision d'un tableau

khen

es que vous pouvez m'expliquer le fonctionnement de ce que vous avez rajoute s'il vous plaît
  int i,j,k,tab1[9][9];
char res[255]= {0};
for(i=0;i<9;i++){
 printf("entrer les valeurs de la ligne %d separé par un '-' \n",i+1);
//scanf("%d",&res);
 scanf("%s",res);

tab1[i][0]=res[0]-48;tab1[i][1]=res[2]-48;
tab1[i][2]=res[4]-48;tab1[i][3]=res[6]-48;
tab1[i][4]=res[8]-48;tab1[i][5]=res[10]-48;
tab1[i][6]=res[12]-48;tab1[i][7]=res[14]-48;
tab1[i][8]=res[16]-48;tab1[i][9]=res[18]-48;

jeudi 20 décembre 2007 à 03:42:47 | Re : problème avec l'initialision d'un tableau

khen

EN FAIT J'AI UNE AUTRE QUESTION
il ne demande d'écrire une fonction fligne1 qui prend en paramètre deux entiers x y  et un tableau de 3 dimension ,x et y correspondent aux coordonées de la case de la ligne x et la colonne y
l'action de cette fonction et de vérifier si dans la ligne de la case (x,y) on sait de manière certaine qu'une autre case vaut un chiffre k,elle indique que k est impossible pour la case (x,y) 
 
moi j'ai fait ça mais j'ai des doute ,alors je demande votre opinion


void fligne1(int x, int y, int tab[9][9][9])
{
     int z,k;
      for(k=0;k<9;k++)  
         for(x=0;x<9;x++)
           for(y=0;y<9;y++)
              if (tab[x][y][k]==2)     // le but de ce "if" est de mettre 0 a toute la ligne x et de hauteur k si on trouve 2 dans cette ligne.
                 {                          
                   for(z=0;z<9;z++)
                   if (tab[x][z][k]!=2)
                      tab[x][z][k]=0;
                 }
}    


jeudi 20 décembre 2007 à 20:49:30 | Re : problème avec l'initialision d'un tableau

sam20

Tu veux faire un sodoku.
c'est un peu plus compliqué que ca.

char res[255]= {0};
for(i=0;i<9;i++){
 printf("entrer les valeurs de la ligne %d separé par un '-' \n",i+1);
//scanf("%d",&res);
 scanf("%s",res);

tab1[i][0]=res[0]-48;tab1[i][1]=res[2]-48;
tab1[i][2]=res[4]-48;tab1[i][3]=res[6]-48;
tab1[i][4]=res[8]-48;tab1[i][5]=res[10]-48;
tab1[i][6]=res[12]-48;tab1[i][7]=res[14]-48;
tab1[i][8]=res[16]-48;tab1[i][9]=res[18]-48;

L'utilisateur entre  9chiffres  avec "-" comme delimiteur (1-2-5-3-6-7-8-4-9)
une fois appuyé sur entrer ca remplit le tableau tab1 de ces valeurs.

jeudi 20 décembre 2007 à 21:13:46 | Re : problème avec l'initialision d'un tableau

sam20

Un tableau de sudoku ne serait 'il pas un tableau tab[3][3][3]?

samedi 22 décembre 2007 à 16:47:20 | Re : problème avec l'initialision d'un tableau

omnia

non un tableau de sudoku =  9*3*3  car il y a 9 case sur 3 ligne sur 3 colonnes !!
^^

donc un total de 81 case !!
bye

1 2

Cette discussion est classée dans : int, tableau, valeurs, tab, for


Répondre à ce message

Sujets en rapport avec ce message

Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le tableau [ par imanedaoudi ] Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t Pb à l'exécution [ par tomalille ] Bonjour,J'ai un petit pb à l'execution de ce prog. Il compile et les liens sont fait sans erreur ni warning. Par contre lorsque j'appelle le sous-prog Help! Pb de spécif en C [ par tomalille ] Bonjour, je suis en train d'écrire un programme et je voudrai faire une fonction qui renvoit un tableau d'entier.Je n'arrive pas à faire la spécif.Vou problème avec des listes > 30 éléments [ par tomalille ] Bonjour,je finalise un programme qui fonctionne parfaitement sauf que je ne peux pas travailler avec une liste de plus de 30 éléments pour le tri par help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell Tableau en C [ par Mickylord ] Bonsoir a tous !Voici ma question :J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction plantage en utilisant le constructeur "new" [ par Ganaga ] Bonjour,J'utilise le constructeur new pour affecter un tableau d'entiers dans une boucle qui s'exécute plus de 10000x. Au bout d'un certain temps (lon compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ] je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo Un tableau en variable globale [ par nisaloncaje ] Rebonjour a tous,Je désirerais maintenant que mon tableau qui a pour dimension tab soit accessible à une fonction appelé dans main() :j'ai la syntaxe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,806 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales