diff options
Diffstat (limited to '2a.c')
| -rw-r--r-- | 2a.c | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -0,0 +1,53 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +int main(void) +{ + char buff[80]; + int depth = 0; + int aim = 0; + int horiz = 0; + + while(fgets(buff, sizeof buff, stdin)) + { + char *tok[2] = {0}; + + tok[0] = strtok(buff," "); + + if (tok[0]) tok[1] = strtok(NULL, " "); + + if (tok[0] && tok[1]) + { + int i = atoi(tok[1]); + + if(strcmp(tok[0], "forward") == 0) + { + horiz += i; + + depth += i * aim; + } + + if(strcmp(tok[0], "down") == 0) + { + aim += i; + } + + if(strcmp(tok[0], "up") == 0) + { + aim -= i; + } + } + else + { + printf("Bad input"); + exit(1); + } + } + + printf("depth=%d\n", depth); + printf("horiz=%d\n", horiz); + printf("product=%d\n", depth*horiz); + + return 0; +} |
