diff options
| author | Abigail <abigail@abigail.be> | 2021-10-11 18:09:05 +0200 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-10-11 18:09:05 +0200 |
| commit | cae766f9713dd38d70eb30133645129c10ddeabe (patch) | |
| tree | 57d376d7859ff6d436e37d893841142598aed126 | |
| parent | 06e1034f0e5868cbfcea3d9fddd5ab3bfa982882 (diff) | |
| download | perlweeklychallenge-club-cae766f9713dd38d70eb30133645129c10ddeabe.tar.gz perlweeklychallenge-club-cae766f9713dd38d70eb30133645129c10ddeabe.tar.bz2 perlweeklychallenge-club-cae766f9713dd38d70eb30133645129c10ddeabe.zip | |
C solutions for week 134
| -rw-r--r-- | challenge-134/abigail/README.md | 4 | ||||
| -rw-r--r-- | challenge-134/abigail/c/ch-1.c | 22 | ||||
| -rw-r--r-- | challenge-134/abigail/c/ch-2.c | 51 |
3 files changed, 77 insertions, 0 deletions
diff --git a/challenge-134/abigail/README.md b/challenge-134/abigail/README.md index f545b41dde..1d9f6de66b 100644 --- a/challenge-134/abigail/README.md +++ b/challenge-134/abigail/README.md @@ -3,9 +3,13 @@ ## Part 1 * [AWK](awk/ch-1.awk) +* [Bash](bash/ch-1.sh) +* [C](c/ch-1.c) * [Perl](perl/ch-1.pl) ## Part 2 * [AWK](awk/ch-2.awk) +* [Bash](bash/ch-1.sh) +* [C](c/ch-1.c) * [Perl](perl/ch-2.pl) diff --git a/challenge-134/abigail/c/ch-1.c b/challenge-134/abigail/c/ch-1.c new file mode 100644 index 0000000000..d65af1ef32 --- /dev/null +++ b/challenge-134/abigail/c/ch-1.c @@ -0,0 +1,22 @@ +# include <stdlib.h> +# include <stdio.h> +# include <string.h> + +/* + * See ../README.md + */ + +/* + * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o + */ + +# define SIZE 5 + +short tail [] = {789, 798, 879, 897, 978}; + +int main (void) { + for (size_t i = 0; i < SIZE; i ++) { + printf ("1023456%d\n", tail [i]); + } + return (0); +} diff --git a/challenge-134/abigail/c/ch-2.c b/challenge-134/abigail/c/ch-2.c new file mode 100644 index 0000000000..523dc497e6 --- /dev/null +++ b/challenge-134/abigail/c/ch-2.c @@ -0,0 +1,51 @@ +# include <stdlib.h> +# include <stdio.h> +# include <string.h> +# include <limits.h> + +/* + * See ../README.md + */ + +/* + * Run as: cc -o ch-2.o ch-2.c; ./ch-2.o < input-file + */ + +int main (void) { + int n, m; + char * buffer; + + while (scanf ("%d%d", &n, &m) == 2) { + int size = 1 + m * n / CHAR_BIT; + /* + * Allocate memory for our buffer + */ + if ((buffer = (char *) malloc (size * sizeof (char))) == NULL) { + perror ("Failed to malloc buffer"); + exit (1); + } + /* + * Set all the bits to 0 + */ + for (int i = 0; i < size; i ++) { + buffer [i] = (char) 0; + } + + int count = 0; /* Count the number of different products */ + + for (int i = 1; i <= m; i ++) { + for (int j = 1; j <= n; j ++) { + int index = (i * j) / CHAR_BIT; + int bit = (i * j) % CHAR_BIT; + if ((buffer [index] & (1 << bit)) == 0) { + count ++; + buffer [index] |= (1 << bit); + } + } + } + printf ("%d\n", count); + free (buffer); + } + + return (0); +} |
