Accueil > Forum > > > > problème avec l'initialision d'un tableau
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
|
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|