problème de compréhension pour ce code

Voir le sujet précédent Voir le sujet suivant Aller en bas

problème de compréhension pour ce code

Message  lassault1 le Lun 29 Mar 2010 - 18:29

Bonjour a tous

J'ai un petit problème de compréhension pour ce code :

Le -1 de la boucle for (i = 0; i < tailleTableau-1; i++) sert a ne sortir du tableau car cette boucle parcourt le tableau donc le -1 est indispensable... j'ai compris c'est ok!

Mais le -1 de la boucle for (j = 0; j < tailleTableau-1; j++) ne sert a rien car cette boucle ne parcourt pas le tableau met permet de répéter la 1ere boucle.. Alors pourquoi mettre le -1 dans cette boucle?

Code:
  1. int main(int argc, char *argv[])
  2. {
  3.    long tableau[10] = {2, 4, 3, 1, 15, 6, 9, 16, 19, 12};
  4.    long i = 0;
  5.   
  6.    ordonnerTableau(tableau, 10);
  7.
  8.    for(i = 0; i < 10; i++)
  9.    {
  10.        printf("%ld\n", tableau[i]);
  11.    }
  12.
  13.    return 0;
  14. }
  15.
  16.
  17. void ordonnerTableau(long tableau[], long tailleTableau)
  18. {
  19.    long i = 0, j = 0, a = 0;
  20.
  21.    for(j = 0; j < tailleTableau-1; j++)
  22.    {
  23.        for(i = 0; i < tailleTableau-1; i++)
  24.        {
  25.            if(tableau[i] > tableau[i+1])
  26.            {
  27.                a = tableau[i+1];
  28.                tableau[i+1] = tableau[i];
  29.                tableau[i] = a;
  30.            }
  31.        }
  32.    }
  33. }

lassault1

Messages : 2
Date d'inscription : 29/03/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: problème de compréhension pour ce code

Message  -ed- le Lun 22 Nov 2010 - 16:12

C'est pour éviter le débordement.

_________________
C is a sharp tool !

-ed-
Admin
Admin

Messages : 289
Date d'inscription : 26/05/2008
Age : 60
Localisation : Paris 6eme arrondissement (75, France)

Voir le profil de l'utilisateur http://bien-programmer.fr

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum