From 2a7bc10f6c011d19fb3b0e73068f7e1a9c30ace0 Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Sat, 8 Oct 2016 09:56:43 +0700 Subject: Initial commit --- NTU/writer.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 NTU/writer.c (limited to 'NTU/writer.c') diff --git a/NTU/writer.c b/NTU/writer.c new file mode 100644 index 0000000..3227991 --- /dev/null +++ b/NTU/writer.c @@ -0,0 +1,52 @@ +#include +#include + +typedef char *string; + +const string KEYBOARD[10] = {"_0", ".,?!1", "abc2", "def3", "ghi4", "jkl5", + "mno6", "pqrs7", "tuv8", "wxyz9"}; +struct Foo { + char num; + char times; +}; + +struct Foo get(char letter) +{ + struct Foo val; + char len; + + for (val.num = 0; val.num < 10; val.num++) { + len = strlen(KEYBOARD[val.num]); + for (val.times = 0; val.times < len; val.times++) + if (KEYBOARD[val.num][val.times] == letter) { + val.times++; + return val; + } + } +} + +int main() +{ + char t, i, s[50][1000]; + + scanf("%hhd", &t); + for (i = 0; i < t; i++) + scanf("%s", s[i]); + + short time, j; + struct Foo f00; + char olechr; + + for (i = 0; i < t; i++) { + time = 0; + olechr = 1; + for (j = 0; j < strlen(s[i]); j++) { + f00 = get(s[i][j]); + time += f00.times; + if (f00.num != olechr) + time++; + olechr = f00.num; + } + printf("%hd\n", time); + } +} -- cgit 1.4.1