probleme simple avec un tableau

probleme simple avec un tableau - C - Programmation

Marsh Posté le 03-11-2008 à 18:21:37    

J'ai un tableau d'entier (ici, saisie_temp[k]). J'aimerais analyser chacune de ses cases, et, si elles sont toutes égales a 1, alors j'affecte 1 a la variable saisie_valide (0 sinon)
Je ne vois pas trop comment coder cela, bien que ca puisse sembler tres simple.
 
J'avais essayé le code suivant, mais le pb est que ce sera uniquement la derniere valeur de k qui décidera de celle de saisie_valide, donc cela ne marche pas.
 

Code :
  1. for (k=0; k<argc-1 ; k++)
  2.          {
  3.                 if ( saisie_temporaire[k] == 1 )
  4.                  {
  5.                   saisie_valide = 1;
  6.                   }
  7.                else
  8.                   {
  9.                   saisie_valide = 0;
  10.                   }
  11.          }


 
 
 
Pouvez vous m'aider?

Reply

Marsh Posté le 03-11-2008 à 18:21:37   

Reply

Marsh Posté le 03-11-2008 à 18:28:19    

Code :
  1. saisie_valide = 1;
  2. for (k=0; k<argc-1 ; k++)
  3. {
  4.     if ( saisie_temporaire[k] != 1 )
  5.      {
  6.            saisie_valide = 0;
  7.             break;
  8.      }
  9. }

Reply

Marsh Posté le 03-11-2008 à 19:08:48    

effectivement, je n'y avais pas pensé.
C'est le break ici qui est interessant puisqu'a la premiere fois qu'un des éléments du tableau ne vaut pas 1, on sort de la boucle, meme si l'analyse n'est pas terminée, et saisie_valide vaut alors 0
 
Merci beaucoup

Reply

Marsh Posté le 03-11-2008 à 19:32:32    

meme sans le break , ça marche aussi  
 
c'est juste qu'une fois que c'est pas valide, c'est pas la peine de continuer

Reply

Marsh Posté le 04-11-2008 à 10:29:24    

Et autant utiliser une boucle while pour éviter d'avoir un break.

Code :
  1. saisie_valide = 1;
  2. k = 0;
  3. while (saisie_valide && k < argc-1)
  4. {
  5.       if ( saisie_temporaire[k] != 1 )
  6.       {
  7.             saisie_valide = 0;
  8.       }
  9.       k++;
  10. }


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 04-11-2008 à 11:02:26    

[:le poney de mr pink]
 
Tu peux mettre la condition pour ne pas avoir le break dans la boucle for hein, ça évite ta laide tambouille avec ton itérateur qui se retrouve éparpillé partout.
 
Et puis le break c'est pas si mal hein, c'est pas la peine de tester 1.199.999 fois si la variable est positionnée sur 1.200.000 itérations. Même si dans les deux cas je doute que la différence soit visible.

Reply

Marsh Posté le 04-11-2008 à 13:48:48    

Elmoricq a écrit :


Tu peux mettre la condition pour ne pas avoir le break dans la boucle for hein, ça évite ta laide tambouille avec ton itérateur qui se retrouve éparpillé partout.


Clair, autant pour moi. :jap:
 

Elmoricq a écrit :


Et puis le break c'est pas si mal hein, c'est pas la peine de tester 1.199.999 fois si la variable est positionnée sur 1.200.000 itérations. Même si dans les deux cas je doute que la différence soit visible.


Suis alergique au break (sauf dans un switch bien sûr) :spamafote:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Sujets relatifs:

Leave a Replay

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