Triangle de Pascal

Fermé
Cynthia76 - Modifié par baladur13 le 14/03/2016 à 17:13
 Utilisateur anonyme - 14 mars 2016 à 17:11
Bonjour,

j'essaye de réaliser le triangle de pascal en C et à vrai dire je bloque au niveau de la compréhension de la correction.

Voici le code :

<ital>#include <stdio.h>
#define NMAX 12

int main()
{
  int i, j;
  int nb;
  int t[NMAX];

  printf("Combien de nb voulez vous ?\n");
  scanf("%d", &nb);

  if (nb > NMAX) 
    nb = NMAX;

  printf("\n p");
  for (i = 0; i < nb; i++)
    printf("%5d", i);

  printf("\n n \n");

  for (i = 0; i <= nb; i++)
    printf("-----");
  printf("\n");

  //création + affichage

  for (i = 0; i < nb; i++)
    {
      t[i] = 1;
      for(j = i - 1; j > 0; j--)
       t[j] = t[j - 1] + t[j];
      printf("%2d", i);
      for (j = 0; j <= i; j++)
 printf("%5d", t[j]);
      printf("\n");
    }
}</ital>


Je ne comprend pas la deuxième partie qui traite de la création et de l'affichage. SI vous pouviez m'expliquer (avec des mots simples ^^ pourquoi il y'a des -1 un peu partout et aussi la ligne t[j] = t[j - 1] + t[j]; .

Merci :)


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

Utilisateur anonyme
14 mars 2016 à 17:11
t[j-1] fait référence à l'élément avant t[j]. Pour le triangle de Pascal, c'est parce qu'il faut additionner les anciennes valeurs pour avoir les nouvelles.

1 2 1
Tu recopies le 1 (t[i] = 1) puis tu fais 1 + 2 = 3 ( t[j-1] = 1 et t[j] = 2). Ensuite tu fais 2 + 1 = 3 ( t[j-1] = 2 et t[j] = 1). Et tu finis par rajouter un 1.

1 2 1 -> 1 3 3 1 -> 1 4 6 4 1 etc...
0