Files
exc/qscr/c/pascaltriangle.c
T
Your Name 2fb0bd05f3 IC
2026-05-01 01:14:15 +02:00

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;
}