diff --git a/learnc/a.exe b/learnc/a.exe index 194a1b0..6e32960 100755 Binary files a/learnc/a.exe and b/learnc/a.exe differ diff --git a/learnc/learnc12.c b/learnc/learnc12.c new file mode 100755 index 0000000..7f02501 --- /dev/null +++ b/learnc/learnc12.c @@ -0,0 +1,41 @@ +#include +#include + +int main() { + int i, j; + /* TODO: define the 2D pointer variable here */ + int **pnumbers; + + /* TODO: complete the following line to allocate memory for holding three rows */ + pnumbers = (int **) malloc(3 *sizeof(int *)); + + /* TODO: allocate memory for storing the individual elements in a row */ + pnumbers[0] = (int *) malloc(1 * sizeof(int)); + pnumbers[1] = (int *) malloc(2 * sizeof(int)); + pnumbers[2] = (int *) malloc(3 * sizeof(int)); + + + pnumbers[0][0] = 1; + pnumbers[1][0] = 1; + pnumbers[1][1] = 1; + pnumbers[2][0] = 1; + pnumbers[2][1] = 2; + pnumbers[2][2] = 1; + + for (i = 0; i < 3; i++) { + for (j = 0; j <= i; j++) { + printf("%d", pnumbers[i][j]); + } + printf("\n"); + } + + for (i = 0; i < 3; i++) { + /* TODO: free memory allocated for each row */ + free(pnumbers[i]); + } + + /* TODO: free the top-level pointer */ + free(pnumbers); + + return 0; +} \ No newline at end of file diff --git a/learnc/learnc13.c b/learnc/learnc13.c new file mode 100755 index 0000000..3e59dd8 --- /dev/null +++ b/learnc/learnc13.c @@ -0,0 +1,25 @@ +#include + +int factorial(int x); + +int main() { + /* testing code */ + printf("0! = %i\n", factorial(0)); + printf("1! = %i\n", factorial(1)); + printf("3! = %i\n", factorial(3)); + printf("5! = %i\n", factorial(5)); +} + +/* define your function here (don't forget to declare it) */ +int factorial(int x) { + + if (x == 0) { + + return 1; + } else if (x >= 1) { + + return x*factorial(x-1); + } + + return 0; +} \ No newline at end of file