Problème de tableau

Problème de tableau - C - Programmation

Marsh Posté le 02-01-2004 à 19:35:35    

Code :
  1. int test (char mot[], int tableau[], int x, int y, int z)
  2. {
  3. // la fonction retourne  1 si le mot est plaçable à l'endroit indiqué (x,y,z; z = horizontal/vertical)
  4. // dans le tableau (qui représente la grille du mot croisé), False ou 0 sinon
  5. int i;
  6. int res=1;
  7. for(i=0;mot[i]=='\0';i++)
  8. {
  9.  if((mot[i]!=tableau[x][y])&&(tableau[x][y]!=' '))  // si le caractère ou l'on veut écrire n'est pas soit le même que celui que
  10.  {             // l'on veut écrire soit un espace
  11.   res=0;
  12.   break;
  13.  }
  14.  if(z=0)
  15.   x++;
  16.  else
  17.   y++;
  18. }
  19. return res;
  20. }


dans la déclaration, tableau état un baleau à 2 dim, comment je dois l'exprimer ? tableau[] ou tableau[][] ? (pour être précis, la variable qui sera envoyé comme paramètres est définie par un:
char grille_ref[1000][1000];
)
 
dans le premier cas ([]), le "if((mot[i]!=tableau[x][y])&&(tableau[x][y]!=' ')) " a come erreur:
E:\Projet\nath.c(63) : error C2109: subscript requires array or pointer type
dans le second ([]([]), c'est la déclaration qui donne:
E:\Projet\nath.c(54) : error C2087: '<Unknown>' : missing subscript
:/
je suis assez naze en prog alors de la compréhention, par pitié :D


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 19:35:35   

Reply

Marsh Posté le 02-01-2004 à 19:38:09    

précision: je sous sous VC++ 6
et laissez tomber les commentaires: hors contexte ils sont incompréhentible: en gros je veux essayer de palcer un mot contenu dans uen string dans un grand tableau à 2 dim comme pour un mot croisé


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 19:47:26    

pourquoi tu compares un élément d'un tableau de char à un élément d'un tableau de int??
 
tableau à deux dimensions : partout[][]

Reply

Marsh Posté le 02-01-2004 à 19:51:52    

parce que je suis très con et que je me suis planté en tapant la déclaration
et pourtant j'ai relu je en sais cb de fois :/
merci en tous cas


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 19:53:44    

j'ai toujours
"E:\Projet\nath.c(54) : error C2087: '<Unknown>' : missing subscript"
avec le [][]


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 19:54:09    

if(z=0)  
 
vas-y mon gars

Reply

Marsh Posté le 02-01-2004 à 19:59:03    

taz a écrit :

if(z=0)  
 
vas-y mon gars


 
Y'avait une backdoor dans le kernel Linux qui avait la même gueule. Le genre de petits bugs bien perfides et vicieux :o


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 02-01-2004 à 20:08:34    

c'est pas le pb mais tjs bien de le signaler, merci :D
 
ouais la dernière, celle qui a priori a servi contre debian et savannah :D


Message édité par Piksou le 02-01-2004 à 20:09:33

---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 20:57:14    

Salut!
 
En fait, le problème est lié au fait de déclarer une fonction avec un argument qui est un tableau multidimensionnel:
Quand tu veux faire cela, tu peux omettre la taille d'uniquement la première dimensions, les autres tailles doivent être données...
 
Au passage, cela n'est pas vrai si tu veux déclarer un pointeur vers ta fonction. Le pointeur de fonction n'a pas besoin qu'on lui mentionne ces tailles de dimensions.
 
La bonne déclaration est donc:  
int test (char mot[], int tableau[][CONSTANT_MAX_Y], int x, int y, int z)  
{...}
 
Bon, faudra que tu m'invites dimanche pour ça je crois!

Reply

Marsh Posté le 02-01-2004 à 21:05:20    

passez au tout pointeur les gars, les constantes sont trop limitantes ici

Reply

Marsh Posté le 02-01-2004 à 21:05:20   

Reply

Marsh Posté le 02-01-2004 à 21:09:19    

Bon c'est vrai, mais il est dans une école FEMININE Piksou, il faut pas le brusquer ;)
(au fait c'est ta collègue qui a fait ça ou c'est toi?)
Tu réponds d'ailleurs toi!


---------------
Qui pisse contre le vent s'en prend plein la gueule
Reply

Marsh Posté le 02-01-2004 à 21:23:21    

aïe merde :/
ici ça me gène pas, je peux passer en pointeur, mais ya un autre endroit ou ça va poster pb :/
comment je peux faire une fonction récursive qui utilise un tableau à 2 dim en en créant une copie locale à chaque invocation ? si j'utilise un pointeur ça va me niquer la valeur dans l'appel précédent non ?
en fait je sens que je vais virer mon tableau multidim et passer en une seule dimension :/
 
merci en tous cas, mais sté pas 6clon ton nick ici ?


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 02-01-2004 à 21:30:46    

sinon c'est mon code pourriu à moi, pas besoin d'aide pour faire de la merde :D


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed