summaryrefslogtreecommitdiff
path: root/sem_5/HLIN504_Systeme/TP1/pascal.c
blob: 9e98edabcfb46a6467c42deed036102d1dfb7e50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>

int ** pasc(int n);
void printtab(int ** tab, int n);
int main ( int argc, char ** argv){
  // pasc(atoi(argv[1]));
  printtab(pasc(atoi(argv[1])), (atoi(argv[1])));
  return 0;
}

void printtab(int ** tab, int n){
  for(int i = 0; i < n; i ++){
    for (int j = 0; j < n; j ++){
      printf ("%d \t ", tab[i][j]);
    }
    printf("\n");
  }
}
int ** pasc(int n){
  int ** tab = malloc ( sizeof(int*)*n);
  for (int i =0; i < n; i ++){
    tab[i]=malloc(sizeof(int)*n);
    for (int j = 0 ; j < n; j ++){
      tab[i][j]=0;
    }
  }
  for (int i=0; i < n; i ++){
    for (int j = 0 ; j <= i; j ++){
      tab[i][j]= (i>0?(j>0?tab[i-1][j]+tab[i-1][j-1]:tab[i-1][0]):1);
      // printf("%d %d %d \n",i,j, tab[i][j]);
    }
  }
  return tab;
}