diff options
| -rw-r--r-- | challenge-001/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-001/abigail/c/ch-2.c | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-001/abigail/README.md b/challenge-001/abigail/README.md index 15a8939c56..666f65dbf5 100644 --- a/challenge-001/abigail/README.md +++ b/challenge-001/abigail/README.md @@ -37,4 +37,5 @@ upper boad from STDIN. ### Solutions * [AWK](awk/ch-2.awk) +* [C](c/ch-2.c) * [Perl](perl/ch-2.pl) diff --git a/challenge-001/abigail/c/ch-2.c b/challenge-001/abigail/c/ch-2.c new file mode 100644 index 0000000000..4c72835827 --- /dev/null +++ b/challenge-001/abigail/c/ch-2.c @@ -0,0 +1,30 @@ +# include <stdlib.h> +# include <stdio.h> +# include <string.h> + +/* + * See ../README.md + */ + +/* + * Run as: cc -o ch-2.o cc-2.c; ./ch-2.o < input-file + */ + +int main (void) { + char * line = NULL; + size_t len = 0; + size_t strlen; + + while ((strlen = getline (&line, &len, stdin)) != -1) { + int max = atoi (line); + for (int i = 1; i <= max; i ++) { + if (i % 15 == 0) {printf ("%s\n", "fizzbuzz"); continue;} + if (i % 5 == 0) {printf ("%s\n", "buzz"); continue;} + if (i % 3 == 0) {printf ("%s\n", "fizz"); continue;} + printf ("%d\n", i); + } + } + free (line); + + return (0); +} |
