From 554ad47f09974f0131df285fda8ea50a1fdad8f5 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 11 Dec 2023 15:14:47 +0100 Subject: Initial commit, some solutions --- 2023/01/1b.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 2023/01/1b.c (limited to '2023/01/1b.c') diff --git a/2023/01/1b.c b/2023/01/1b.c new file mode 100644 index 0000000..adc3da8 --- /dev/null +++ b/2023/01/1b.c @@ -0,0 +1,28 @@ +#include +#include + +#define N 10000 + +char *nums[10] = { "zero (unused)", "one", "two", "three", "four", "five", + "six", "seven", "eight", "nine" }; + +int main() { + char *buf, line[N]; + int j, first, last, sum; + + sum = 0; + while ((buf = fgets(line, N, stdin)) != NULL) { + for (first = -1; *buf; buf++) { + for (j = 1; j < 10; j++) + if (!strncmp(buf, nums[j], strlen(nums[j]))) + *buf = j + '0'; + if (*buf < '0' || *buf > '9') + continue; + first = first == -1 ? *buf - '0' : first; + last = *buf - '0'; + } + sum += 10 * first + last; + } + printf("%d\n", sum); + return 0; +} -- cgit v1.3