37 lines
1.0 KiB
C
37 lines
1.0 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int *pascallarr(int iarrsize, int *ptr){
|
|
int *mypascallar = malloc(sizeof(int) * iarrsize + 1);
|
|
/* declare edges, as they're always 1 anyways so we can start the loop at 1 (so i-1 = 0) */
|
|
mypascallar[0] = 1;
|
|
mypascallar[iarrsize] = 1;
|
|
for (int i = 1; i <= iarrsize; i++) {
|
|
if (i < iarrsize) {
|
|
mypascallar[i] = ptr[i-1] + ptr[i];
|
|
}
|
|
}
|
|
return mypascallar;
|
|
}
|
|
|
|
int main() {
|
|
int trianglesize = 18;
|
|
int ** pnumbers;
|
|
|
|
/* create pascals triangle, on row i, we have i numbers */
|
|
|
|
/* should create 2d array of ints, with an array of pointers to arrays*/
|
|
|
|
int **ptrtriangle = malloc(sizeof(int *)*trianglesize);
|
|
|
|
/* need to create a function that returns the pointer to an array of i numbers filled with numbers */
|
|
for (int i = 0; i < trianglesize; i++) {
|
|
ptrtriangle[i] = pascallarr(i,ptrtriangle[i-1]);
|
|
for (int j = 0; j <= i; j++) {
|
|
printf("%d|",ptrtriangle[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
return 0;
|
|
}
|