[C] comment reduire ce bout de code ?

comment reduire ce bout de code ? [C] - C++ - Programmation

Marsh Posté le 08-05-2002 à 18:09:41    

jai ca comme bout de code
 
int put_case(t_cases  *cas)
{    
    if (cas->tbl_1[1]== 0)
        printf("coucou" );
    if (cas->tbl_2[1] == 0)
        printf("coucou" );
    if(cas->tbl_3[1] == 0)
        printf("coucou" );
}
 
je voudrais le transformer en un truc de ce style
 
int   put_case(t_cases  *cas)
{
  int i;
  tmp[3] = {                   <<<je met koi comme type ??  t_cases tmp[3]  ?
      cas->tbl_1,
      cas->tbl_2,
      cas->tbl_3
        };
   for (i=0;i <= 2; i++)
        if(tmp[i][1] == 0)   <<< un truc de ce genre est ce possible ? ou faut faire un  tmp[i] avec dans le tmp[i]  <==>  cas->tbl_1[1]  
             printf("coucou" );
}
 
voila A+

Reply

Marsh Posté le 08-05-2002 à 18:09:41   

Reply

Marsh Posté le 08-05-2002 à 18:44:59    

int put_case(t_cases  *cas)  
{    
   if (!(cas->tbl_1[1]) || !(cas->tbl_2[1]) || !(cas->tbl_3[1]))
       printf("coucou" );  
}

Reply

Marsh Posté le 08-05-2002 à 18:46:35    

Mais ta fonction n'est pas correct ... si tu la déclares comme ça : int put_case(t_cases  *cas) tu devrais lui faire retourner un INT, sinon dans ton cas tu devrais la déclarer comme ça : void put_case(t_cases  *cas).

Reply

Marsh Posté le 08-05-2002 à 19:29:17    

Olivier51 a écrit a écrit :

int put_case(t_cases  *cas)  
{    
   if (!(cas->tbl_1[1]) || !(cas->tbl_2[1]) || !(cas->tbl_3[1]))
       printf("coucou" );  
}  




 
 [:tdk04]  je lattendais celle la  
 
jai simplifie le code de maniere a pouvoir le sortir du contexte  
c'est pour cela  ke la fonction ne renvoie pas un int
 
jaimmerrais utiliser un tableau de pointeur vers mon tableau  
mais i arrive po  [:sisicaivrai]


---------------
télétunestel ouimélétuness sitélétunes mélétunetron [:koulip31] [:suri]
Reply

Marsh Posté le 08-05-2002 à 21:03:15    

J'ai rien compris ...

Reply

Marsh Posté le 08-05-2002 à 23:02:45    

Olivier51 a écrit a écrit :

J'ai rien compris ...  




 
 :cry:  :cry:


---------------
télétunestel ouimélétuness sitélétunes mélétunetron [:koulip31] [:suri]
Reply

Marsh Posté le 09-05-2002 à 01:14:24    

si j'ai bien compris, cas->tbl_X est un tableau d'entiers (au pif, vu la comparaison)
 
ca devrait donner ca, non ?
int* tmp[3] = {...}

Reply

Marsh Posté le 09-05-2002 à 01:26:23    

lorill a écrit a écrit :

si j'ai bien compris, cas->tbl_X est un tableau d'entiers (au pif, vu la comparaison)
 
ca devrait donner ca, non ?
int* tmp[3] = {...}  




 
oui c'est un tbl d'entier mais ca gene pas kil soit dans une structure ?
 
et jai le tdoit de faire
 tmp[i][3]  
au lieu de
 cas->tbl_i[3]
 
(si dans tmp[i] il y a cas->tbl_i)


---------------
télétunestel ouimélétuness sitélétunes mélétunetron [:koulip31] [:suri]
Reply

Marsh Posté le 09-05-2002 à 01:35:16    

en quoi ca generait ?
 
un tableau est un pointeur.
cas->tbl_i est donc un pointeur vers la premiere valeur du tableau
quand tu fais tmp[i] = cas->tbl_i, tu recopie le pointeur tbl_i valeur dans tmp[i]. La structure n'intervient pas la dedans.

Reply

Marsh Posté le 09-05-2002 à 01:52:51    

pkoi tu crées pas un structure cas contenant la liste de tout t'es cas, et quand suite tu prends à chaque fois l'element + 1 ?
 
du style :
 
struct List_cas {
  t_cases *tbl_1;
  t_cases *tbl_2;
  t_cases *tbl_3;
};
 
List_cas *list_cas = NULL;
 
/* initialisation */
 
temp = list_cas.tbl_1;
for (i=1; i<=3; i++) {
  if ((int) (*temp)[1] == 0)
    printf("coucou" );
  temp++;
}
 
Ceci dit je dis pe une connerie :D

 

[jfdsdjhfuetppo]--Message édité par joce le 09-05-2002 à 01:57:51--[/jfdsdjhfuetppo]


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 09-05-2002 à 01:52:51   

Reply

Marsh Posté le 09-05-2002 à 12:38:26    

joce a écrit a écrit :

pkoi tu crées pas un structure cas contenant la liste de tout t'es cas, et quand suite tu prends à chaque fois l'element + 1 ?
 
du style :
 
struct List_cas {
  t_cases *tbl_1;
  t_cases *tbl_2;
  t_cases *tbl_3;
};
 
List_cas *list_cas = NULL;
 
/* initialisation */
 
temp = list_cas.tbl_1;
for (i=1; i<=3; i++) {
  if ((int) (*temp)[1] == 0)
    printf("coucou" );
  temp++;
}
 
Ceci dit je dis pe une connerie :D  
 
 




 
en fiat c'est une unique structure avec avec 6 champs
elle a cette geule
 
typedef struct s_case
{
 int tbl_0[4];
 int tbl_1[4];
 int tbl_2[4];
 int tbl_3[4];
 int tbl_4[4];
 int tbl_5[4];
 int tbl_6[4];
}t_case;
 
 
et a certains moment je suis oblige de faire les meme traitement sur 4 de ces tableaux
 
donc au lieux de faire n fonction ou seulemnt  
le case->tbl_x change je voulais les regrouper en une boucle for  
economisant ainsi des fonctions inutiles
 
donc faut ke je puisse mettre les  
case->tbl_x dans un tableau affin de pouvoir faire ca nikel

Reply

Sujets relatifs:

Leave a Replay

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